Initial import
|
@ -0,0 +1,2 @@
|
||||||
|
Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
Sjoerd Simons <sjoerd@luon.net> (Debian package maintainer)
|
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
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) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
|
@ -0,0 +1,479 @@
|
||||||
|
2005-15-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.9.1
|
||||||
|
* if_scripts: Fixed write perms checking
|
||||||
|
* if_main: beautified about dialog
|
||||||
|
|
||||||
|
2005-14-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.9.0
|
||||||
|
|
||||||
|
2005-14-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* mcp/mcp_userlist: added userlist events for triggering
|
||||||
|
* mcp/mcp_ice_userlist mcp/mcp_ice_serverinfo: added loading of
|
||||||
|
image alternatives (following specs), fixed invalid uri detection
|
||||||
|
* if_triggers: added entrycompletion for scripts instead of dropdown
|
||||||
|
* if_main: searching now happens while-you-type finding the first
|
||||||
|
match and coloring the background red (like ff) if none found.
|
||||||
|
added drag-and-drop tabs (live moving)
|
||||||
|
* world: added inverse ansi, added invisible ansi
|
||||||
|
* if_world: improved keeping text window end scrolled
|
||||||
|
* if_world_listing: list shows world info (server and player) and
|
||||||
|
uses a custom icon when provided by dns-nl-icecrew-serverinfo.
|
||||||
|
load on startup is moved to if_world_properties
|
||||||
|
* if_world_properties: load on startup is now provided by this dialog
|
||||||
|
rather than by if_world_listing
|
||||||
|
|
||||||
|
2005-07-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* if_scripts: fixed crashing when one time opened
|
||||||
|
* scripts/music: added copyright for Simon Gijsen
|
||||||
|
* if_main: added basic searching firefox style.
|
||||||
|
searches can take place in worlds, editors and
|
||||||
|
logs
|
||||||
|
|
||||||
|
2005-07-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* ui/: seperated interfaces over several single glade
|
||||||
|
files.
|
||||||
|
* mcp/mcp_ice_serverinfo: added serverinfo mcp package
|
||||||
|
(see http://www.icecrew.nl/software/mcp for specs)
|
||||||
|
* triggers if_triggers world if_world_properties: added trigger support.
|
||||||
|
gnoemoe now handles two types of triggers for all sorts
|
||||||
|
of events. Check it out.
|
||||||
|
* world: removed stale functions, removed transparent background
|
||||||
|
fixed default charset loading, fixed/improved activity updates,
|
||||||
|
added reconnect foolproof (fixes problems with multiple
|
||||||
|
autoreconnects), added basic searching
|
||||||
|
* debug: loglevel 0 now goes to stdout, > 0 goes to stderr
|
||||||
|
|
||||||
|
2005-06-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* net: added connect timeout
|
||||||
|
* if_main world: added log opening support
|
||||||
|
* if_mcpconsole: fixed crashing, mcp console window is now
|
||||||
|
reintroduced
|
||||||
|
* if_main: added serverinfo window, improved notification area
|
||||||
|
stuff. It's now just a notification icon, showing when there
|
||||||
|
is activity and interactive in combination with triggers.
|
||||||
|
added log opening dialog
|
||||||
|
* if_ editor: fixed some memory leaks (no severe ones)
|
||||||
|
|
||||||
|
2005-01-06 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.8.2
|
||||||
|
* Fixed dutch translations
|
||||||
|
* net.c: Fixed connecting weirdness
|
||||||
|
* if_scripts.c: Fixed ruby mime type
|
||||||
|
|
||||||
|
2005-10-05 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* if_world.c: Added sending of empty lines
|
||||||
|
* editor.c gnoe_pixbuf.c world.c: Fixed possible
|
||||||
|
GError problems
|
||||||
|
|
||||||
|
2005-27-03 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* scripts/music.rb: Added xmms function (by Simon Gijsen)
|
||||||
|
|
||||||
|
2005-18-01 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* if_world_properties.c if_worlds_listing.c script.c
|
||||||
|
support.c world.c: Changed all declarations to be
|
||||||
|
at the top of a function (patch for FreeBSD
|
||||||
|
4.x by Pav Lucistnik)
|
||||||
|
* if_world.c world.c: Changed int to gsize
|
||||||
|
(patch for OSX by Christian Luijten)
|
||||||
|
* if_world_properties.c: Moved encodings declaration
|
||||||
|
from header to source file (patch for OSX by
|
||||||
|
Christian Luijten)
|
||||||
|
|
||||||
|
2004-29-12 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* world.c: added sane default charset (ISO-8859-15)
|
||||||
|
* support.c: Added trailing / in url regexp
|
||||||
|
(e.g. http://www.icecrew.nl/)
|
||||||
|
|
||||||
|
2004-14-12 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.8.1
|
||||||
|
* Makefile.am: fixed intltool problems
|
||||||
|
* gnoemoe.desktop: changed icon to svg (which it already should have
|
||||||
|
been, the png version doesn't get installed!)
|
||||||
|
|
||||||
|
2004-13-12 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.8.0
|
||||||
|
* po: Added/Fixed Dutch (nl) translations
|
||||||
|
* if_main.c: changed GnoeMoe GTK+ MOO Client to GnoeMoe Gnome MOO Client
|
||||||
|
* if_world_properties.c: fixed bacause typo
|
||||||
|
|
||||||
|
2004-13-12 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* support.c: added a remote file fetcher function which uses gnomevfs
|
||||||
|
to async fetch files from a remote system
|
||||||
|
* mcp_ice_userlist.c: added ranks and states messages which handle
|
||||||
|
remote rank and state icons
|
||||||
|
* world.c: fixed creation of tags with bold enabled while bold-colors
|
||||||
|
was set
|
||||||
|
* if_scripts.c: fixed segmentation fault when loading a second script
|
||||||
|
in the editor (curEdit wasn't reset to NULL, free didn't like it)
|
||||||
|
* gnoe_pixbuf.c: added test for loading icons with absolute paths
|
||||||
|
|
||||||
|
2004-21-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
* mcp_ice_userlist.c: the P_NAME property now also has a signal connected
|
||||||
|
so name changes will be detected by the userlist
|
||||||
|
|
||||||
|
2004-21-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* world.c: fixed color problems (adding of to much tags and bold problems)
|
||||||
|
* configure.in: fixed regexp include problem when ruby enabled
|
||||||
|
|
||||||
|
2004-13-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* Added url matching, underlining and action-taking in the world
|
||||||
|
* Added notification tray icon (when GnoeMoe is hidden and new text
|
||||||
|
is added to a world the icon will blink showing there is activity in
|
||||||
|
one of the worlds, the tooltip will indicate which worlds and how
|
||||||
|
many lines). Blinking is only done when GnoeMoe is hidden which can
|
||||||
|
be achieved by clicking on the icon or by activating the Hide GnoeMoe
|
||||||
|
menu item (in the popup menu of the notification icon). Same goes
|
||||||
|
for re-showing GnoeMoe
|
||||||
|
* Added application icon state. The application icon will now show there
|
||||||
|
is activity in worlds by changing its icon. This only happens when
|
||||||
|
GnoeMoe is not the top-level activated window
|
||||||
|
|
||||||
|
2004-10-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.7.1
|
||||||
|
* Fixed compile error
|
||||||
|
|
||||||
|
2004-09-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.7.0
|
||||||
|
* No more Run menu
|
||||||
|
* Added NL translation (dutch)
|
||||||
|
* if_worlds_listing.c: fixed SEGV on duplicating world
|
||||||
|
|
||||||
|
2004-09-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* main.c: Added --load option for loading worlds from the commandline
|
||||||
|
Improved gnoe_pixbuf initializing and finalizing
|
||||||
|
Fixed scripts initializing to happen before world auto loading
|
||||||
|
* world.c: Moved userlist API to the world to abstract it from the
|
||||||
|
mcp modules
|
||||||
|
* widgets/mcp_ping: Removed the lagmeter
|
||||||
|
* gnoe_pixbuf: Added initializing/finalizing,
|
||||||
|
removed external librsvg
|
||||||
|
* src/Makefile.am: Mcp packages now reside in mcp/
|
||||||
|
|
||||||
|
2004-08-04 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* script.c: scripts directories are now monitored via GnomeVFS to
|
||||||
|
automagically update changes in scripts
|
||||||
|
* if_main.c: window title now shows active world
|
||||||
|
|
||||||
|
2004-08-04 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.6.4
|
||||||
|
* world.c: fixed auto-reconnect
|
||||||
|
fixed on_disconnect script function call which could crash on
|
||||||
|
unloading a world
|
||||||
|
* net.c: fixed auto-reconnect
|
||||||
|
* if_mcpconsole.c: added world loaded check for if_mcpconsole_add
|
||||||
|
* editor.c: fixed crash on editor_fini
|
||||||
|
* if_main.c: added editor switch accelerators (Ctrl-<num>)
|
||||||
|
|
||||||
|
2004-07-28 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.6.3
|
||||||
|
* logo: newly very improved logo, veeeery nice one, by Simon Gijsen
|
||||||
|
* pixmaps/userlist/default.map: fixed inhabitant/inhabitant+ switch
|
||||||
|
|
||||||
|
2004-07-28 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* userlist.c: improved sorting
|
||||||
|
* gnoe_pixbuf.c: database of pixbufs, normal files as well as svg's
|
||||||
|
* script.c: added host and port functions to world class
|
||||||
|
improved connect function of world class
|
||||||
|
* net.c: fixed setting of net status flag on disconnect before calling
|
||||||
|
world_disconnected
|
||||||
|
|
||||||
|
2004-07-27 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.6.2
|
||||||
|
* userlist.c: now using svg image mapping for icons
|
||||||
|
* pixmaps/userlist: contains new svg image containing all the userlist
|
||||||
|
icons and 1 map file for mapping the svg to nameble icons
|
||||||
|
* script.c: added script function description support
|
||||||
|
WARNING: ALL SCRIPTS MUST!! HAVE A DESCRIPTION NOW, USERS NEED
|
||||||
|
TO CHANGE THIS IN THEIR OWN SCRIPTS
|
||||||
|
* world.c: fixed wrong month in logging
|
||||||
|
* script.c: added auto-creation of USER scripts directory
|
||||||
|
|
||||||
|
2004-07-19 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.6.1
|
||||||
|
* pixmaps/icons: improved new icons from Simon Gijsen
|
||||||
|
* gnoemoe.glade: fixed width resize on long input
|
||||||
|
|
||||||
|
2004-07-19 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* editor.c: fixed font unref stupid
|
||||||
|
* gnoemoe.glade: fixed window width stretching
|
||||||
|
|
||||||
|
2004-07-19 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.6.0
|
||||||
|
* scripts/misc.rb: added sendall script
|
||||||
|
* scripts/editing.rb: added editing scripts (/e, /de, /me, /ne, /he)
|
||||||
|
* gnoemoe.glade: added mcpconsole interface, added scripts interface
|
||||||
|
* configure.in: added ruby checking and compile status
|
||||||
|
|
||||||
|
2004-07-19 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* userlist.c: improved scroll handler timeout to be removed when
|
||||||
|
the userlist is destroyed
|
||||||
|
* packages.c/mcp.c: added callbacks to log messages to the mcpconsole
|
||||||
|
* if_world_properties.c: fixed renaming problem (the dir wouldn't
|
||||||
|
get renamed and thus the world got duplicated)
|
||||||
|
* editor.c: added unref of font description
|
||||||
|
|
||||||
|
2004-07-17 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* if_scripts.c: added, interface for manipulating and viewing
|
||||||
|
scripts (editor/console/overview/flush&reload)
|
||||||
|
* world.c: improved userlist width saving/restoring
|
||||||
|
* world.c: added on_connect, on_login, on_disconnect script calls
|
||||||
|
* world.c: added mcp text buffer
|
||||||
|
* if_mcpconsole.c: added, interface for viewing mcp messages
|
||||||
|
|
||||||
|
2004-07-16 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* script.c: added input method for world class (this gives the
|
||||||
|
opportunity for recursion)
|
||||||
|
* script.c: added connect method for world class
|
||||||
|
* script.c: added disconnect method for world class
|
||||||
|
* script.c: added quit method for world class
|
||||||
|
* script.c: improved function run
|
||||||
|
* script.c: added flush&reload function
|
||||||
|
* script.c: added script function aliassing
|
||||||
|
|
||||||
|
2004-07-14 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.5.0
|
||||||
|
* script.c: added open method for client class
|
||||||
|
* script.c: added connected? method for world class
|
||||||
|
* script.c: added shared scripts dir
|
||||||
|
* scripts/*: added some scripts
|
||||||
|
* configure.in/Makefile.am: added installation of scripts
|
||||||
|
|
||||||
|
2004-07-14 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* world.c: added some documentation
|
||||||
|
* world.c: added main_process_input function
|
||||||
|
* script.c/script.h: added, GnoeMoe now has ruby scripting support
|
||||||
|
* main.c: added main_get_app_path function
|
||||||
|
|
||||||
|
2004-07-12 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.4.3
|
||||||
|
* if_world.c: added world settings saving on destroy
|
||||||
|
needed for userlist width saving
|
||||||
|
|
||||||
|
2004-07-09 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* pixmap.c: added function to set alpha channel of a pixbuf
|
||||||
|
* world.c/if_world.c/if_preferences.c/main.c/gnoemoe/glade:
|
||||||
|
added background transparancy
|
||||||
|
|
||||||
|
2004-07-07 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.4.2
|
||||||
|
* if_main.c: changed Ctrl-<num> to Alt-<num> (used for tab switching) to
|
||||||
|
match other gnome apps
|
||||||
|
* net.c: disconnect on sendline fail
|
||||||
|
|
||||||
|
2004-07-06 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* net.c: improved connecting (its now non-blocking)
|
||||||
|
|
||||||
|
2004-07-03 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.4.1
|
||||||
|
* packages.c: fixed (added) decimal point conversion in negotiate
|
||||||
|
package
|
||||||
|
|
||||||
|
2004-07-02 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.4
|
||||||
|
* world.c/world.h: added update_character_metrics function, calculates
|
||||||
|
character width (changes when font changes, is used to calculate
|
||||||
|
linelen etc.)
|
||||||
|
* packages.c: improved linelen calculation, its now more accurate
|
||||||
|
* support.h/support.c: added function for length calculation of char **
|
||||||
|
* main.c/if_main.c: added window metrics saving/restoring
|
||||||
|
* if_preferences.c/editor.c: added builtin editor colors/styles
|
||||||
|
configuration
|
||||||
|
|
||||||
|
2004-07-01 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* support.h: added documentation
|
||||||
|
* support.c: added functions for decimal point conversion (used mainly
|
||||||
|
by mcp version number conversions)
|
||||||
|
* mcp.c/packages.c: added decimal point conversion for package versions
|
||||||
|
and mcp versions (needed cause some locales use . and some use ,)
|
||||||
|
|
||||||
|
2004-06-29 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* world.h/world.c: added documentation for all functions/enums/structs
|
||||||
|
* world.c: removed functions world_get_by_index, world_paste
|
||||||
|
added high color support for bold text
|
||||||
|
* ansi.h: added bold color definitions, added documentation
|
||||||
|
* editor.c: added editor_init and editor_fini functions to setup the
|
||||||
|
editor environment and to finish the editor environment
|
||||||
|
all editors will now use the same GtkSourceLanguage (which is stored
|
||||||
|
from within editors_init)
|
||||||
|
* if_world.c: fixed Pageup/Pagedown key bindings to be ignored when
|
||||||
|
Ctrl or Shift is pressed
|
||||||
|
* gnoemoe.glade: added editor color configuration in dlgPreferences
|
||||||
|
|
||||||
|
2004-06-24 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.3.1
|
||||||
|
* gnoemoe.glade: removed Properties/Close/Quit/Preferences button
|
||||||
|
(Dis)Connect label changed to Connect
|
||||||
|
fixed half sized toolbar
|
||||||
|
|
||||||
|
2004-06-24 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.3.0
|
||||||
|
|
||||||
|
* gnoemoe.glade: added buttons for easy access to world functions
|
||||||
|
* if_world.c/if_main.c: added functions to handle new buttons (
|
||||||
|
world - connect/disconnect/properties/close
|
||||||
|
main - preferences/quit
|
||||||
|
* if_world.c/if_world.h: added world_connected function which is now
|
||||||
|
called from net_do_connect. Autologin now resides in this new function
|
||||||
|
* if_main.c: added accelerators for cycling through pages (F6/Shift F6)
|
||||||
|
removed F4 accelerator for connect/disconnect for now
|
||||||
|
set appropriate sensitivity of world tool buttons (depends whether
|
||||||
|
a world or a terminal is active)
|
||||||
|
* if_world_properties.c/if_world_properties.h: added option for
|
||||||
|
charset selection
|
||||||
|
* world.c/world.h/editor.c/if_world.c: added better scroll to bottom
|
||||||
|
functions in world.c/world.h
|
||||||
|
editor.c and if_world.c make use of these functions to keep scrolling
|
||||||
|
sticky
|
||||||
|
* main.c: changed colors to be more natural to the eye
|
||||||
|
|
||||||
|
2004-06-24 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* if_world.c: added pageup/pagedown for world text view
|
||||||
|
|
||||||
|
2004-06-21 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* all.c/all.h: reformatted
|
||||||
|
* all.c/all.h: removed profiles, color/font can now be configured
|
||||||
|
in preferences
|
||||||
|
|
||||||
|
2004-06-21 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* world.c: fixed focussing of input widget on world
|
||||||
|
activation (added doEvents())
|
||||||
|
* world.c/support.c: replaced \e by \x1B
|
||||||
|
* if_world.c: removed dos newlines
|
||||||
|
* if_main.c: added enable/disable of cut/copy/paste
|
||||||
|
menu items (disabled for terminal tabs, enabled for
|
||||||
|
world tabs)
|
||||||
|
|
||||||
|
2004-06-21 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* if_main.c: implemented cut/copy/paste menu items
|
||||||
|
* if_world.c/world.c: better implementation for saving
|
||||||
|
userlist width (now saving hpane position)
|
||||||
|
* if_world.c: changed active state base color for
|
||||||
|
userlist and textview (they are unfocus-able but
|
||||||
|
its nicer to have the same selection colors as if they
|
||||||
|
can actually focus)
|
||||||
|
* userlist.c/pixmaps/icons: changed icons from xpm to
|
||||||
|
png
|
||||||
|
|
||||||
|
2004-06-21 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* gnoemoe.glade: replaced input entry widget by textview
|
||||||
|
widget (for multiline input purposes)
|
||||||
|
reorganised world view layout
|
||||||
|
* if_world.c/world.c: replaced input entry widget by
|
||||||
|
textview widget (for multiline input purposes)
|
||||||
|
* editor.c: fixed charset conversion for saving editor file
|
||||||
|
(from current locale to UTF-8)
|
||||||
|
* world.c: fixed userlist width saving shrinks userlist
|
||||||
|
by 3 pixels
|
||||||
|
|
||||||
|
|
||||||
|
2004-06-20 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* VERSION CHANGED TO 0.2.4
|
||||||
|
|
||||||
|
|
||||||
|
2004-06-17 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* net.c: fixed 100% CPU problem, removal of channel watch
|
||||||
|
|
||||||
|
2004-06-17 Jesse van den Kieboom <troplosti@orcaweb.cjb.met>
|
||||||
|
|
||||||
|
* editor.c/support.c/world.c: function to let the main loop
|
||||||
|
process GUI events is now in support.c
|
||||||
|
* userlist.c: fixed scrolling problem (scroll to top on
|
||||||
|
user add if it was already scrolled to the top)
|
||||||
|
|
||||||
|
2004-06-17 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* editor.c: corrected charset conversion,
|
||||||
|
now converting to current locale for external editors
|
||||||
|
(which use files), and to UTF-8 for the internal editor,
|
||||||
|
fixed signal connecting. signals for save/save&close/close
|
||||||
|
buttons were also tried for VTE editors, wrong!
|
||||||
|
* pixmaps: cleaned up unused pixmaps,
|
||||||
|
removed different logo size pixmaps
|
||||||
|
* gnoemoe.glade: use 48x48 for icon
|
||||||
|
|
||||||
|
2004-06-17 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* Makefile.am: added install of moo.lang file,
|
||||||
|
needed to enable code highlighting in gtksourceview
|
||||||
|
* moo.lang: added
|
||||||
|
* world.c: the input entry now will use the same font
|
||||||
|
as the main text window will do
|
||||||
|
|
||||||
|
2004-06-17 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* Makefile.am: Removed $(DESTDIR)
|
||||||
|
* pixmaps/Makefile.am: Removed $(DESTDIR)
|
||||||
|
* pixmaps/icons/Makefile.am: Removed $(DESTDIR)
|
||||||
|
|
||||||
|
|
||||||
|
2004-06-16 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* Logo: added gnoemoe logo
|
||||||
|
* Makefile.am: distributed makefile for pixmaps and
|
||||||
|
pixmaps/icons to seperate Makefile.am's,
|
||||||
|
pixmaps are now installed in pimaps subdir,
|
||||||
|
added gnoemoe-logo.png as logo,
|
||||||
|
* gnoemoe.glade: removed main status bar,
|
||||||
|
fixed all pixmaps to point to pixmaps/....
|
||||||
|
* interface: added warning/info/error dialogs to inform
|
||||||
|
user for faulty actions (or not yet implemented actions)
|
||||||
|
* all: added gnome support, gnoemoe now accepts session
|
||||||
|
saving and it uses the gnome command parsing
|
||||||
|
* net.c: world_send_line now blocks if it can't send
|
||||||
|
all the data at once
|
||||||
|
* if_world.c: input widget now has monospace font
|
||||||
|
* world.c: added logging
|
||||||
|
* main.c: removed save_size option
|
||||||
|
* if_world_properties_listing: fixed SEGV problem when
|
||||||
|
adding a new world
|
||||||
|
* pixmaps: added gnoemoe_logo_about.png for the aboutbox
|
||||||
|
* Makefile.am: Added gnoemoe.glade (after removing it)
|
|
@ -0,0 +1,229 @@
|
||||||
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
|
This file is free documentation; the Free Software Foundation gives
|
||||||
|
unlimited permission to copy, distribute and modify it.
|
||||||
|
|
||||||
|
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, and a
|
||||||
|
file `config.log' containing compiler output (useful mainly for
|
||||||
|
debugging `configure').
|
||||||
|
|
||||||
|
It can also use an optional file (typically called `config.cache'
|
||||||
|
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||||
|
the results of its tests to speed up reconfiguring. (Caching is
|
||||||
|
disabled by default to prevent problems with accidental use of stale
|
||||||
|
cache files.)
|
||||||
|
|
||||||
|
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 you are using the cache, and at
|
||||||
|
some point `config.cache' contains results you don't want to keep, you
|
||||||
|
may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.ac' (or `configure.in') is used to create
|
||||||
|
`configure' by a program called `autoconf'. You only need
|
||||||
|
`configure.ac' 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 awhile. 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. Run `./configure --help'
|
||||||
|
for details on some of the pertinent environment variables.
|
||||||
|
|
||||||
|
You can give `configure' initial values for configuration parameters
|
||||||
|
by setting variables in the command line or in the environment. Here
|
||||||
|
is an example:
|
||||||
|
|
||||||
|
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||||
|
|
||||||
|
*Note Defining Variables::, for more details.
|
||||||
|
|
||||||
|
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 support 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/bin', `/usr/local/man', etc. You can specify an
|
||||||
|
installation prefix other than `/usr/local' 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.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=PATH' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
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' cannot figure out
|
||||||
|
automatically, but needs to determine by the type of machine the package
|
||||||
|
will run on. Usually, assuming the package is built to be run on the
|
||||||
|
_same_ architectures, `configure' can figure that out, but if it prints
|
||||||
|
a message saying it cannot guess the machine type, give it the
|
||||||
|
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name which has the form:
|
||||||
|
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
where SYSTEM can have one of these forms:
|
||||||
|
|
||||||
|
OS KERNEL-OS
|
||||||
|
|
||||||
|
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 machine type.
|
||||||
|
|
||||||
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
|
use the `--target=TYPE' option to select the type of system they will
|
||||||
|
produce code for.
|
||||||
|
|
||||||
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
platform different from the build platform, you should specify the
|
||||||
|
"host" platform (i.e., that on which the generated programs will
|
||||||
|
eventually be run) with `--host=TYPE'.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Defining Variables
|
||||||
|
==================
|
||||||
|
|
||||||
|
Variables not defined in a site shell script can be set in the
|
||||||
|
environment passed to `configure'. However, some packages may run
|
||||||
|
configure again during the build, and the customized values of these
|
||||||
|
variables may be lost. In order to avoid this problem, you should set
|
||||||
|
them in the `configure' command line, using `VAR=value'. For example:
|
||||||
|
|
||||||
|
./configure CC=/usr/local2/bin/gcc
|
||||||
|
|
||||||
|
will cause the specified gcc to be used as the C compiler (unless it is
|
||||||
|
overridden in the site shell script).
|
||||||
|
|
||||||
|
`configure' Invocation
|
||||||
|
======================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
`-h'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
`-V'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Enable the cache: use and save the results of the tests in FILE,
|
||||||
|
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||||
|
disable caching.
|
||||||
|
|
||||||
|
`--config-cache'
|
||||||
|
`-C'
|
||||||
|
Alias for `--cache-file=config.cache'.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options. Run
|
||||||
|
`configure --help' for more details.
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
SUBDIRS = src po pixmaps scripts ui
|
||||||
|
|
||||||
|
DISTCLEANFILES = \
|
||||||
|
intltool-extract \
|
||||||
|
intltool-merge \
|
||||||
|
intltool-update
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
gnoemoe.desktop \
|
||||||
|
gnoemoe-logo.svg \
|
||||||
|
moo.lang \
|
||||||
|
gnoemoe.xml \
|
||||||
|
autogen.sh \
|
||||||
|
intltool-extract.in \
|
||||||
|
intltool-merge.in \
|
||||||
|
intltool-update.in
|
||||||
|
|
||||||
|
Applicationsdir = $(datadir)/applications
|
||||||
|
Applications_DATA = gnoemoe.desktop
|
||||||
|
|
||||||
|
icondir = $(datadir)/pixmaps
|
||||||
|
icon_DATA = gnoemoe-logo.svg
|
||||||
|
|
||||||
|
langdir = $(datadir)/gtksourceview-1.0/language-specs
|
||||||
|
lang_DATA = moo.lang
|
||||||
|
|
||||||
|
mimedir = $(datadir)/mime/packages
|
||||||
|
mime_DATA = gnoemoe.xml
|
|
@ -0,0 +1,159 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Run this to generate all the initial makefiles, etc.
|
||||||
|
|
||||||
|
srcdir=`dirname $0`
|
||||||
|
test -z "$srcdir" && srcdir=.
|
||||||
|
|
||||||
|
DIE=0
|
||||||
|
|
||||||
|
if [ -n "$GNOME2_DIR" ]; then
|
||||||
|
ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
|
||||||
|
LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
|
||||||
|
PATH="$GNOME2_DIR/bin:$PATH"
|
||||||
|
export PATH
|
||||||
|
export LD_LIBRARY_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
(test -f $srcdir/configure.in) || {
|
||||||
|
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
|
||||||
|
echo " top-level package directory"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`autoconf' installed."
|
||||||
|
echo "Download the appropriate package for your distribution,"
|
||||||
|
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
(grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && {
|
||||||
|
(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`intltool' installed."
|
||||||
|
echo "You can get it from:"
|
||||||
|
echo " ftp://ftp.gnome.org/pub/GNOME/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && {
|
||||||
|
(xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`xml-i18n-toolize' installed."
|
||||||
|
echo "You can get it from:"
|
||||||
|
echo " ftp://ftp.gnome.org/pub/GNOME/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
|
||||||
|
(libtool --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`libtool' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.in >/dev/null) && {
|
||||||
|
(grep "sed.*POTFILES" $srcdir/configure.in) > /dev/null || \
|
||||||
|
(glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`glib' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(automake --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: You must have \`automake' installed."
|
||||||
|
echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
NO_AUTOMAKE=yes
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# if no automake, don't bother testing for aclocal
|
||||||
|
test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
|
||||||
|
echo
|
||||||
|
echo "**Error**: Missing \`aclocal'. The version of \`automake'"
|
||||||
|
echo "installed doesn't appear recent enough."
|
||||||
|
echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
|
||||||
|
DIE=1
|
||||||
|
}
|
||||||
|
|
||||||
|
if test "$DIE" -eq 1; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$*"; then
|
||||||
|
echo "**Warning**: I am going to run \`configure' with no arguments."
|
||||||
|
echo "If you wish to pass any to it, please specify them on the"
|
||||||
|
echo \`$0\'" command line."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $CC in
|
||||||
|
xlc )
|
||||||
|
am_opt=--include-deps;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.in -print`
|
||||||
|
do
|
||||||
|
dr=`dirname $coin`
|
||||||
|
if test -f $dr/NO-AUTO-GEN; then
|
||||||
|
echo skipping $dr -- flagged as no auto-gen
|
||||||
|
else
|
||||||
|
echo processing $dr
|
||||||
|
( cd $dr
|
||||||
|
|
||||||
|
aclocalinclude="$ACLOCAL_FLAGS"
|
||||||
|
|
||||||
|
if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
|
||||||
|
echo "Creating $dr/aclocal.m4 ..."
|
||||||
|
test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
|
||||||
|
echo "Running glib-gettextize... Ignore non-fatal messages."
|
||||||
|
echo "no" | glib-gettextize --force --copy
|
||||||
|
echo "Making $dr/aclocal.m4 writable ..."
|
||||||
|
test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
|
||||||
|
fi
|
||||||
|
if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
|
||||||
|
echo "Running intltoolize..."
|
||||||
|
intltoolize --copy --force --automake
|
||||||
|
fi
|
||||||
|
if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then
|
||||||
|
echo "Running xml-i18n-toolize..."
|
||||||
|
xml-i18n-toolize --copy --force --automake
|
||||||
|
fi
|
||||||
|
if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
|
||||||
|
if test -z "$NO_LIBTOOLIZE" ; then
|
||||||
|
echo "Running libtoolize..."
|
||||||
|
libtoolize --force --copy
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "Running aclocal $aclocalinclude ..."
|
||||||
|
aclocal $aclocalinclude
|
||||||
|
if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
|
||||||
|
echo "Running autoheader..."
|
||||||
|
autoheader
|
||||||
|
fi
|
||||||
|
echo "Running automake --gnu $am_opt ..."
|
||||||
|
automake --add-missing --gnu $am_opt
|
||||||
|
echo "Running autoconf ..."
|
||||||
|
autoconf
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
conf_flags="--enable-maintainer-mode"
|
||||||
|
|
||||||
|
if test x$NOCONFIGURE = x; then
|
||||||
|
echo Running $srcdir/configure $conf_flags "$@" ...
|
||||||
|
$srcdir/configure $conf_flags "$@" \
|
||||||
|
&& echo Now type \`make\' to compile. || exit 1
|
||||||
|
else
|
||||||
|
echo Skipping configure process.
|
||||||
|
fi
|
|
@ -0,0 +1,152 @@
|
||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
AC_INIT(configure.in)
|
||||||
|
AM_INIT_AUTOMAKE(gnoemoe, 0.9.1)
|
||||||
|
AC_DEFINE_UNQUOTED(IVERSION, "0.9.1", "this is used for internal representation of the version")
|
||||||
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
|
AC_ISC_POSIX
|
||||||
|
AC_STDC_HEADERS
|
||||||
|
AC_PROG_CC
|
||||||
|
AM_PROG_CC_STDC
|
||||||
|
AC_HEADER_STDC
|
||||||
|
|
||||||
|
AC_PROG_INTLTOOL
|
||||||
|
|
||||||
|
pkg_modules="gtk+-2.0 >= 2.0.0 gdk-pixbuf-2.0 libgnome-2.0 libglade-2.0 gtksourceview-1.0 gnome-vfs-2.0 libgnomeui-2.0 vte libxml-2.0 cairo"
|
||||||
|
PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
|
||||||
|
|
||||||
|
AC_SUBST(PACKAGE_CFLAGS)
|
||||||
|
AC_SUBST(PACKAGE_LIBS)
|
||||||
|
|
||||||
|
AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(rubyen,
|
||||||
|
[
|
||||||
|
GnoeMoe specific options:
|
||||||
|
--disable-ruby disable use of the ruby scripting support],
|
||||||
|
rubyen=$enableval, rubyen=yes)
|
||||||
|
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
# Look for Ruby
|
||||||
|
#----------------------------------------------------------------
|
||||||
|
|
||||||
|
if test "_$rubyen" = "_yes"; then
|
||||||
|
RUBYBIN=
|
||||||
|
|
||||||
|
AC_ARG_WITH(ruby,[ --with-ruby=path Set location of Ruby executable],[ RUBYBIN="$withval"], [RUBYBIN=])
|
||||||
|
|
||||||
|
# First figure out what the name of Ruby is
|
||||||
|
|
||||||
|
if test -z "$RUBYBIN"; then
|
||||||
|
AC_CHECK_PROGS(RUBY, ruby)
|
||||||
|
else
|
||||||
|
RUBY="$RUBYBIN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for Ruby header files)
|
||||||
|
if test -n "$RUBY"; then
|
||||||
|
RUBYDIR=`($RUBY -rmkmf -e 'print Config::CONFIG[["archdir"]] || $archdir') 2>/dev/null`
|
||||||
|
if test "$RUBYDIR" != ""; then
|
||||||
|
dirs="$RUBYDIR"
|
||||||
|
RUBYINCLUDE=none
|
||||||
|
for i in $dirs; do
|
||||||
|
if test -r $i/ruby.h; then
|
||||||
|
AC_MSG_RESULT($i)
|
||||||
|
RUBYINCLUDE="-idirafter $i"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test "$RUBYINCLUDE" = none; then
|
||||||
|
AC_MSG_RESULT(could not locate ruby.h, disabling ruby support)
|
||||||
|
rubymsg="(no headers found, install ruby1.8-dev)"
|
||||||
|
rubyen="no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find library and path for linking.
|
||||||
|
AC_MSG_CHECKING(for Ruby library)
|
||||||
|
RUBYLIB=""
|
||||||
|
rb_libdir=`($RUBY -rrbconfig -e 'print Config::CONFIG[["libdir"]]') 2>/dev/null`
|
||||||
|
rb_bindir=`($RUBY -rrbconfig -e 'print Config::CONFIG[["bindir"]]') 2>/dev/null`
|
||||||
|
dirs="$dirs $rb_libdir $rb_bindir"
|
||||||
|
|
||||||
|
rb_libruby=`($RUBY -rrbconfig -e 'print Config::CONFIG[["LIBRUBY_A"]]') 2>/dev/null`
|
||||||
|
RUBYLINK=`($RUBY -rrbconfig -e '
|
||||||
|
c = Config::CONFIG
|
||||||
|
if c.has_key? "LIBRUBYARG_STATIC" # 1.8.x
|
||||||
|
if c[["LIBRUBY"]] == c[["LIBRUBY_A"]]
|
||||||
|
link = c[["LIBRUBYARG_STATIC"]]
|
||||||
|
else
|
||||||
|
link = c[["LIBRUBYARG_SHARED"]]
|
||||||
|
end
|
||||||
|
else # 1.6.x
|
||||||
|
link = "-l" + c[["RUBY_INSTALL_NAME"]]
|
||||||
|
end
|
||||||
|
puts link') 2>/dev/null`
|
||||||
|
|
||||||
|
if test "$rb_libruby" != ""; then
|
||||||
|
for i in $dirs; do
|
||||||
|
if (test -r $i/$rb_libruby;) then
|
||||||
|
RUBYLIB="$i"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if test "$RUBYLIB" = ""; then
|
||||||
|
AC_MSG_RESULT(not found... disabling ruby support)
|
||||||
|
rubymsg="(libs not found)"
|
||||||
|
rubyen="no"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT($RUBYLINK in $RUBYLIB)
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(unable to determine ruby configuration, disabling ruby support)
|
||||||
|
rubymsg="(unable to determine configuration)"
|
||||||
|
rubyen="no"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(not found.. disabling ruby support)
|
||||||
|
rubymsg="(no headers found, install ruby1.8-dev)"
|
||||||
|
rubyen="no"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "_$rubyen" == "_no"; then
|
||||||
|
RUBYINCLUDE=""
|
||||||
|
RUBYLINK=""
|
||||||
|
AM_CONDITIONAL(HAVE_SCRIPT, false)
|
||||||
|
else
|
||||||
|
rubymsg="enjoy scripting :)"
|
||||||
|
AC_DEFINE([HAVE_RUBY], [], [Ruby scripting is enabled])
|
||||||
|
AM_CONDITIONAL(HAVE_SCRIPT, true)
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(RUBYINCLUDE)
|
||||||
|
AC_SUBST(RUBYLINK)
|
||||||
|
|
||||||
|
GETTEXT_PACKAGE=gnoemoe
|
||||||
|
AC_SUBST(GETTEXT_PACKAGE)
|
||||||
|
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", "gettext package")
|
||||||
|
|
||||||
|
dnl Add the languages which your application supports here.
|
||||||
|
ALL_LINGUAS="nl"
|
||||||
|
AM_GLIB_GNU_GETTEXT
|
||||||
|
|
||||||
|
AC_OUTPUT([
|
||||||
|
Makefile
|
||||||
|
pixmaps/Makefile
|
||||||
|
pixmaps/userlist/Makefile
|
||||||
|
pixmaps/ice-userlist/Makefile
|
||||||
|
pixmaps/tray/Makefile
|
||||||
|
src/Makefile
|
||||||
|
src/test/Makefile
|
||||||
|
po/Makefile.in
|
||||||
|
scripts/Makefile
|
||||||
|
ui/Makefile
|
||||||
|
])
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Building with ruby ............. : $rubyen $rubymsg
|
||||||
|
echo Install prefix ................. : $prefix
|
||||||
|
echo Install share .................. : $datadir
|
|
@ -0,0 +1,717 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.39"
|
||||||
|
width="48.000000pt"
|
||||||
|
height="48.000000pt"
|
||||||
|
sodipodi:docbase="/home/jesse/icecrewcvs/GnoeMoe"
|
||||||
|
sodipodi:docname="gnoemoe-logo.svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:cc="http://web.resource.org/cc/"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2676">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2677" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2678" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2665">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#2f2f2f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2666" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#2f2f2f;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2667" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2655">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#212121;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2656" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#212121;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2658" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2648">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#212121;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2649" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#212121;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop2650" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#212121;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2651" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2627">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3f3f3f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2628" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3f3f3f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop2630" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff3a03;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2629" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2619">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2620" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bb7733;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2621" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2614">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2615" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bb7733;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2616" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2610">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2611" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2612" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2524">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2525" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2526" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2517">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2518" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff00;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop2520" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff00;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop2521" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f00;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop2522" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2519" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2509">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop2510" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#fff;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop2511" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2524"
|
||||||
|
id="linearGradient2512"
|
||||||
|
x1="0.37719297"
|
||||||
|
y1="0.32236841"
|
||||||
|
x2="0.49561402"
|
||||||
|
y2="0.96052629" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="linearGradient2609"
|
||||||
|
x1="0.44571429"
|
||||||
|
y1="0.059999999"
|
||||||
|
x2="0.64857143"
|
||||||
|
y2="0.75333333" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2613"
|
||||||
|
x1="0.037500001"
|
||||||
|
y1="0.51973683"
|
||||||
|
x2="0.55000001"
|
||||||
|
y2="0.81578946" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2617"
|
||||||
|
x1="-0.069230773"
|
||||||
|
y1="0.61842108"
|
||||||
|
x2="0.27692309"
|
||||||
|
y2="0.86184210" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2619"
|
||||||
|
id="linearGradient2618"
|
||||||
|
x1="1.7826087"
|
||||||
|
y1="0.96052629"
|
||||||
|
x2="8.3427189e-15"
|
||||||
|
y2="0.40789473" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2622"
|
||||||
|
x1="-0.35135135"
|
||||||
|
y1="0.74342108"
|
||||||
|
x2="0.64864862"
|
||||||
|
y2="0.65789473" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2623"
|
||||||
|
x1="4.0435971e-14"
|
||||||
|
y1="0.50000000"
|
||||||
|
x2="0.36956522"
|
||||||
|
y2="0.24342105" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2655"
|
||||||
|
id="linearGradient2624"
|
||||||
|
x1="0.45454547"
|
||||||
|
y1="0.35526314"
|
||||||
|
x2="0.81818181"
|
||||||
|
y2="0.80263156" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2619"
|
||||||
|
id="linearGradient2625"
|
||||||
|
x1="1.3596492"
|
||||||
|
y1="0.74342108"
|
||||||
|
x2="0.76315790"
|
||||||
|
y2="0.52631581" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2633"
|
||||||
|
cx="0.47692308"
|
||||||
|
cy="0.69078946"
|
||||||
|
r="0.33903649"
|
||||||
|
fx="0.48461536"
|
||||||
|
fy="0.69736838" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="radialGradient2664"
|
||||||
|
cx="0.50000000"
|
||||||
|
cy="0.50000000"
|
||||||
|
r="0.50000000"
|
||||||
|
fx="0.50000000"
|
||||||
|
fy="0.50000000" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="radialGradient2680"
|
||||||
|
cx="0.40659341"
|
||||||
|
cy="0.48684210"
|
||||||
|
r="0.29306078"
|
||||||
|
fx="0.40659341"
|
||||||
|
fy="0.49342105" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2682"
|
||||||
|
cx="0.092307694"
|
||||||
|
cy="-0.21710527"
|
||||||
|
r="0.33903649"
|
||||||
|
fx="0.084615365"
|
||||||
|
fy="-0.20394737" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="radialGradient2684"
|
||||||
|
cx="0.65384614"
|
||||||
|
cy="0.31578946"
|
||||||
|
r="0.26406428"
|
||||||
|
fx="0.65384614"
|
||||||
|
fy="0.32894737" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2686"
|
||||||
|
x1="-0.024096385"
|
||||||
|
y1="4.8799825e-15"
|
||||||
|
x2="0.25903615"
|
||||||
|
y2="0.35526314" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="radialGradient2688"
|
||||||
|
cx="0.47252747"
|
||||||
|
cy="0.40131578"
|
||||||
|
r="0.32444274"
|
||||||
|
fx="0.39560434"
|
||||||
|
fy="0.48684207" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2705"
|
||||||
|
cx="0.10769231"
|
||||||
|
cy="-0.13815789"
|
||||||
|
r="0.23086299"
|
||||||
|
fx="0.13076918"
|
||||||
|
fy="-0.13157894" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2619"
|
||||||
|
id="linearGradient2719"
|
||||||
|
x1="0.23595506"
|
||||||
|
y1="0.79605263"
|
||||||
|
x2="0.38202247"
|
||||||
|
y2="0.96710527" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2721"
|
||||||
|
x1="-0.057971016"
|
||||||
|
y1="0.74342108"
|
||||||
|
x2="0.24637681"
|
||||||
|
y2="0.42763159"
|
||||||
|
spreadMethod="pad" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="radialGradient2723"
|
||||||
|
cx="0.49549550"
|
||||||
|
cy="0.38888890"
|
||||||
|
r="0.66668981"
|
||||||
|
fx="0.49999997"
|
||||||
|
fy="0.38888884" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2725"
|
||||||
|
x1="-0.33870968"
|
||||||
|
y1="0.37500000"
|
||||||
|
x2="0.20967741"
|
||||||
|
y2="0.80263156" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2759"
|
||||||
|
x1="0.94674557"
|
||||||
|
y1="0.93421054"
|
||||||
|
x2="0.62426037"
|
||||||
|
y2="0.75657892" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="radialGradient2768"
|
||||||
|
cx="0.32575756"
|
||||||
|
cy="0.42105263"
|
||||||
|
r="0.41422856"
|
||||||
|
fx="0.27272728"
|
||||||
|
fy="0.44078946" />
|
||||||
|
<radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2771"
|
||||||
|
cx="0.32307693"
|
||||||
|
cy="0.67763156"
|
||||||
|
r="0.34615383"
|
||||||
|
fx="0.32307690"
|
||||||
|
fy="0.68421048" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2773"
|
||||||
|
x1="-0.024096385"
|
||||||
|
y1="-2.3035188e-14"
|
||||||
|
x2="0.34337351"
|
||||||
|
y2="0.17105263" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="linearGradient2775"
|
||||||
|
x1="0.50000000"
|
||||||
|
y1="-0.046052631"
|
||||||
|
x2="0.41176471"
|
||||||
|
y2="0.36842105" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient3191"
|
||||||
|
x1="0.98947370"
|
||||||
|
y1="-2.1497310e-14"
|
||||||
|
x2="0.45263159"
|
||||||
|
y2="0.50555557" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient3193"
|
||||||
|
x1="0.82631576"
|
||||||
|
y1="0.16111112"
|
||||||
|
x2="0.45263159"
|
||||||
|
y2="0.50555557" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="7.4081633"
|
||||||
|
inkscape:cx="18.500001"
|
||||||
|
inkscape:cy="32.896697"
|
||||||
|
inkscape:window-width="603"
|
||||||
|
inkscape:window-height="525"
|
||||||
|
inkscape:window-x="198"
|
||||||
|
inkscape:window-y="105"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:grid-bbox="false" />
|
||||||
|
<metadata
|
||||||
|
id="metadata4">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF5">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work6">
|
||||||
|
<dc:format
|
||||||
|
id="format7">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type9"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2625);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 16.545811,42.369587 C 17.105294,42.641395 17.103344,43.344089 16.970919,43.862028 C 15.858845,45.608278 17.357053,47.107978 19.175195,46.559592 C 20.993334,46.011206 22.828667,46.121777 21.316488,48.427122 C 19.804309,50.732437 20.553743,53.316430 22.961822,53.782383 C 25.310958,55.156693 25.450099,57.913232 24.654388,59.680300 C 26.612317,58.664072 27.750123,55.977817 27.236539,53.718518 C 28.709795,54.541202 28.267856,55.802061 27.858457,56.910892 C 26.805995,58.253375 28.820610,57.584008 29.165279,56.168692 C 29.982433,54.809380 28.933525,54.080499 30.338265,52.992216 C 32.302545,51.694460 33.326673,49.702260 31.629342,48.355308 C 33.494655,51.071620 33.846741,45.191221 37.730454,43.040004 C 40.278180,44.161914 43.730595,34.955951 43.045086,29.087462 C 45.330702,25.376399 39.637009,8.1218713 36.990451,7.7322623 C 36.290439,7.5688053 35.578605,7.4997213 34.872771,7.5247693 C 32.755269,7.5998523 30.689286,8.4877223 28.842512,10.002840 C 25.129264,8.1526483 20.974906,9.6128123 17.986463,11.730732 C 15.353927,13.504190 13.164908,16.471942 9.7755401,16.670916 C 7.3836931,16.588152 5.6760184,14.067154 5.6189089,11.842443 C 5.2468576,8.6048623 7.4917453,4.9327363 10.594270,3.9732333 C 13.434580,3.0948433 16.540147,2.9888313 19.411365,2.6882863 C 21.618776,2.4572443 17.214858,0.63918030 15.971124,0.46957430 C 15.156335,0.35849230 14.363807,0.31067630 13.585784,0.32594530 C 11.251713,0.37172130 9.0513173,0.97719330 6.7446631,2.1296413 C 3.3333195,3.8339853 2.2985464,5.3869303 1.1158918,8.7139033 C 0.021664847,11.792137 0.0019601721,15.647788 1.3678088,18.706043 C 2.8865263,22.017928 6.3099274,24.345892 9.9487326,24.236850 C 10.251938,24.239220 11.221127,24.223442 11.523214,24.196953 L 11.625554,24.117160 C 11.230810,25.040426 10.834071,25.967772 10.468310,26.870579 C 9.9114693,28.245040 6.7212271,30.549124 9.7597943,30.525876 C 12.239202,30.104559 14.935602,29.867129 16.923684,28.115600 C 17.500470,27.683724 17.073643,28.854290 17.191349,30.206611 C 17.238166,30.431383 17.339718,30.645116 17.474756,30.829151 C 17.609791,31.013157 16.983692,32.219150 15.703460,31.754907 C 14.586535,30.763667 13.111656,32.032085 13.144930,33.319192 C 12.927376,35.017626 14.052238,36.500617 15.317711,37.469270 C 15.670921,37.776955 16.044025,38.069342 16.427724,38.339230 L 16.411978,38.347209 C 16.435007,38.592170 16.534390,38.814632 16.600913,39.049513 L 16.553682,39.057492 C 16.319270,40.002387 13.585748,40.546033 15.073670,41.515616 C 16.561592,42.485258 17.942012,42.507126 18.726470,42.433452"
|
||||||
|
id="path2581"
|
||||||
|
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#2f2f2f;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 28.570036,10.055036 C 25.132324,8.1529783 20.977921,9.6091823 17.989474,11.727132 C 15.356939,13.500590 13.165301,16.468883 9.7759361,16.667856 C 7.3840891,16.585093 5.6737888,14.064995 5.6166793,11.840283 C 5.2446280,8.6027023 7.4942020,4.9297963 10.596724,3.9702943 C 13.437036,3.0918733 16.538218,2.9918013 19.409439,2.6912563 C 21.616853,2.4602143 17.217524,0.63522130 15.973788,0.46561330 C 12.714640,0.021230304 9.8170271,0.59442330 6.7414888,2.1310213 C 3.3301443,3.8353343 2.2983475,5.3884293 1.1156930,8.7153733 C 0.021465961,11.793607 0.0017711857,15.645239 1.3676198,18.703494 C 2.8863370,22.015378 6.3096979,24.342291 9.9485046,24.233281 C 10.251710,24.235650 11.223026,24.223771 11.525113,24.197283"
|
||||||
|
id="path2498"
|
||||||
|
sodipodi:nodetypes="ccccsssssccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2759);fill-opacity:0.12156863;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 31.697421,36.062292 C 30.948240,37.211530 29.092490,43.577620 24.638238,43.497197 C 22.605936,43.389655 20.843336,41.878557 18.724175,42.429462 C 17.939723,42.503137 16.560941,42.484208 15.073019,41.514596 C 13.585097,40.544983 16.322333,40.002717 16.556739,39.057822"
|
||||||
|
id="path2486"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2768);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 31.700193,36.064632 C 33.856104,34.022756 41.533326,36.960840 30.074415,46.996117 C 27.040566,49.653034 20.084264,46.285384 19.175195,46.559592 C 17.357053,47.107978 15.858845,45.608278 16.970919,43.862028 C 17.971662,42.905884 13.585748,40.546033 15.073670,41.515616 C 16.561592,42.485258 17.942012,42.507126 18.726470,42.433452 C 20.845628,41.882546 22.606344,43.387346 24.638643,43.494887 C 29.092895,43.575311 30.951009,37.213870 31.700193,36.064632 z "
|
||||||
|
id="path2762"
|
||||||
|
sodipodi:nodetypes="cscccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5364780;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 24.338323,35.708351 C 25.213336,37.815532 24.099717,40.231628 22.787546,41.194311 C 21.200181,42.443921 18.804473,42.233368 17.444968,40.690742 C 16.875417,40.061212 16.498129,39.223439 16.415437,38.343820"
|
||||||
|
id="path2507"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#radialGradient2723);stroke-width:2.5364780;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 25.486577,36.382217 C 26.361586,38.489398 25.247971,40.905524 23.935800,41.868177 C 22.348434,43.117817 19.952727,42.907264 18.593220,41.364608 C 18.023672,40.735108 17.646385,39.897305 17.563693,39.017716"
|
||||||
|
id="path2722"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.2682390;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 24.180876,35.229469 C 25.292059,38.134766 24.099717,40.231628 22.787546,41.194311 C 21.200181,42.443921 18.804473,42.233368 17.444968,40.690742 C 16.875417,40.061212 16.498129,39.223439 16.415437,38.343820"
|
||||||
|
id="path2527"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#bbbb00;stroke-width:0.47558972;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 24.653219,34.750617 C 26.315471,38.853029 23.942270,42.546123 20.189652,42.471249"
|
||||||
|
id="path2529"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2512);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 25.726638,34.939002 C 26.259033,34.143616 25.036793,33.257487 24.467316,34.045314 C 23.870117,34.508957 23.389021,35.103689 22.809760,35.588150"
|
||||||
|
id="path2492" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2775);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 22.533560,50.822910 C 23.278566,52.970318 26.750859,49.253436 25.940066,48.209849 C 24.541141,47.025634 23.044241,46.953490 22.627990,46.333980 C 20.809849,46.882366 22.080077,49.515795 22.533560,50.822910 z "
|
||||||
|
id="path2774"
|
||||||
|
sodipodi:nodetypes="cccs" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 25.940066,48.209849 C 24.318476,46.122677 21.485583,46.502026 19.176677,46.559742 C 17.358538,47.108128 15.858452,45.604918 16.970523,43.858668 C 17.102948,43.340729 17.108642,42.639596 16.549158,42.367787"
|
||||||
|
id="path2493" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2623);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 21.315756,48.426222 C 19.803578,50.731567 20.550548,53.314300 22.958627,53.780193 C 25.307763,55.154533 25.451677,57.915902 24.655966,59.682940 C 26.613898,58.666771 27.748749,55.974007 26.329837,54.033943 C 26.271053,53.943770 26.212278,53.853597 26.153495,53.763395"
|
||||||
|
id="path2494"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2624);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 31.631526,48.354108 C 33.328857,49.701060 32.302059,51.692000 30.337779,52.989787 C 28.933042,54.078070 29.983315,54.810250 29.166161,56.169532 C 28.821489,57.584848 26.804882,58.256644 27.857345,56.914162 C 28.266740,55.805331 28.713437,54.544712 28.145506,53.402793"
|
||||||
|
id="path2495"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 42.729870,31.981899 C 43.562736,35.121838 42.176095,38.420253 40.021617,40.861818 C 37.820067,43.356688 33.914760,45.418783 33.410106,48.931112"
|
||||||
|
id="path2496"
|
||||||
|
sodipodi:nodetypes="csc" />
|
||||||
|
<path
|
||||||
|
style="fill:#2f2f2f;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 49.688641,27.469151 C 52.587946,30.161165 51.610003,35.104229 48.721632,37.398745 C 46.521508,39.752837 43.366005,41.051703 40.169910,40.935822 C 38.686614,41.046423 36.032238,40.575611 35.334753,41.923973 C 38.554026,43.489938 42.086419,45.144845 45.760962,44.684382 C 50.286772,43.779564 55.087495,41.950311 57.853294,38.000557 C 60.138916,34.289524 60.145267,29.433874 58.634389,25.430395 C 57.087283,22.080743 54.260413,19.434414 50.911785,17.997950 C 47.968434,16.558785 45.219423,14.684895 43.122915,12.110831 C 41.438553,10.211653 39.639019,8.1204013 36.992461,7.7307323 C 34.192416,7.0769343 31.212750,7.9995413 29.117757,9.9505543 C 29.039124,10.005240 28.724417,10.223683 28.645699,10.278188"
|
||||||
|
id="path2497" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2f2f2f;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect2645"
|
||||||
|
width="13.359918"
|
||||||
|
height="5.8691216"
|
||||||
|
x="21.975943"
|
||||||
|
y="10.014898" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2617);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 20.468021,16.178655 C 18.216267,17.159097 15.288346,16.767928 14.044945,19.309475 C 12.582296,21.605941 11.496840,24.335092 10.468969,26.872169 C 9.9121263,28.246659 6.7244443,30.547354 9.7630130,30.524106 C 12.242421,30.102789 14.937965,29.869229 16.926051,28.117729 C 17.525434,27.668935 18.006003,27.089232 18.541173,26.572613"
|
||||||
|
id="path2491"
|
||||||
|
sodipodi:nodetypes="ccsccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2719);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 9.5078783,30.270446 C 13.167749,27.032566 16.903591,29.286886 18.797319,22.129879 C 18.687056,22.083592 19.963358,25.494319 18.537532,26.575313 C 18.002361,27.091901 17.523067,27.666836 16.923684,28.115600 C 14.935602,29.867129 12.239202,30.104559 9.7597943,30.525876"
|
||||||
|
id="path2707"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2725);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 22.880905,15.537607 C 20.758925,15.520808 19.193335,17.146198 18.519641,19.039257 C 17.678498,21.024497 19.789439,22.707393 19.270774,24.685494 C 18.952083,26.663206 17.011187,28.113110 17.193415,30.206701 C 17.240233,30.431473 17.338986,30.643916 17.474021,30.827921"
|
||||||
|
id="path2490" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2633);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 49.688641,27.469151 C 52.587946,30.161165 51.610003,35.104229 48.721632,37.398745 C 46.521508,39.752837 43.366005,41.051703 40.169910,40.935822 C 38.686614,41.046423 36.032238,40.575611 35.334753,41.923973 C 38.554026,43.489938 42.086419,45.144845 45.760962,44.684382 C 50.286772,43.779564 55.087495,41.950311 57.853294,38.000557 C 60.138916,34.289524 60.145267,29.433874 58.634389,25.430395 C 57.087283,22.080743 54.260413,19.434414 50.911785,17.997950 C 47.968434,16.558785 45.219423,14.684895 43.122915,12.110831 C 41.438553,10.211653 39.639019,8.1204013 36.992461,7.7307323 C 34.192416,7.0769343 31.212750,7.9995413 29.117757,9.9505543 C 29.039124,10.005240 28.724417,10.223683 28.645699,10.278188"
|
||||||
|
id="path2632" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2622);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 24.090337,49.075340 C 24.310673,50.204749 22.710620,50.789853 23.052313,51.923041 C 23.597775,53.278453 25.382482,53.762404 25.655495,55.278033"
|
||||||
|
id="path2501" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2502"
|
||||||
|
sodipodi:cx="139.36806"
|
||||||
|
sodipodi:cy="134.82051"
|
||||||
|
sodipodi:rx="2.8240740"
|
||||||
|
sodipodi:ry="2.6828704"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 0 136.54398,134.82051 A 2.8240740 2.6828704 0 1 0 142.19213 134.82051 z"
|
||||||
|
transform="matrix(-0.503835,0.000000,0.000000,0.510781,101.4230,-44.74339)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2503"
|
||||||
|
sodipodi:cx="139.36806"
|
||||||
|
sodipodi:cy="134.82051"
|
||||||
|
sodipodi:rx="2.8240740"
|
||||||
|
sodipodi:ry="2.6828704"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 0 136.54398,134.82051 A 2.8240740 2.6828704 0 1 0 142.19213 134.82051 z"
|
||||||
|
transform="matrix(-0.358137,0.000000,0.000000,0.378900,69.94423,-27.11202)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2504"
|
||||||
|
sodipodi:cx="139.36806"
|
||||||
|
sodipodi:cy="134.82051"
|
||||||
|
sodipodi:rx="2.8240740"
|
||||||
|
sodipodi:ry="2.6828704"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 0 136.54398,134.82051 A 2.8240740 2.6828704 0 1 0 142.19213 134.82051 z"
|
||||||
|
transform="matrix(-0.180298,0.000000,0.000000,0.190586,55.82677,-1.905338)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2505"
|
||||||
|
sodipodi:cx="139.36806"
|
||||||
|
sodipodi:cy="134.82051"
|
||||||
|
sodipodi:rx="2.8240740"
|
||||||
|
sodipodi:ry="2.6828704"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 0 136.54398,134.82051 A 2.8240740 2.6828704 0 1 0 142.19213 134.82051 z"
|
||||||
|
transform="matrix(-0.131713,0.000000,0.000000,0.138376,37.98490,4.955712)" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.47558972;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 16.106765,37.703581 C 15.861548,38.374177 15.951752,38.874867 16.161784,39.278905"
|
||||||
|
id="path2989"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2613);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 22.179307,21.073183 C 22.624264,22.359990 22.529285,23.826933 21.486786,24.794266 C 20.248461,26.320154 19.514263,28.168846 18.586299,29.888667 C 18.158545,31.014927 16.984856,32.222780 15.704623,31.758567 C 14.587699,30.767326 13.112964,32.033585 13.146238,33.320692 C 12.928684,35.019126 14.051179,36.504067 15.316652,37.472719 C 16.538773,38.537244 17.941733,39.430843 19.537176,39.771315"
|
||||||
|
id="path2488"
|
||||||
|
sodipodi:nodetypes="ccccccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2609);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 28.856938,34.506257 C 29.861221,32.220830 27.728006,29.970201 25.442726,30.280825 C 23.469652,30.462101 22.311810,32.357379 20.568877,33.100480 C 19.893829,33.516636 19.217318,33.945662 18.470027,34.217770"
|
||||||
|
id="path2487" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.47558972;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 24.102150,37.065082 C 24.111200,38.853029 23.560269,40.159184 22.393926,40.954900 C 21.348670,41.667943 19.906608,41.754546 18.547107,40.930152"
|
||||||
|
id="path2528"
|
||||||
|
sodipodi:nodetypes="css" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 9.5078783,30.267176 C 13.167749,27.029296 16.903591,29.283616 18.797319,22.126609"
|
||||||
|
id="path2530"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2682);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 49.688641,27.469151 C 52.587946,30.161165 51.610003,35.104229 48.721632,37.398745 C 46.521508,39.752837 43.366005,41.051703 40.169910,40.935822 C 38.686614,41.046423 36.032238,40.575611 35.334753,41.923973 C 38.554026,43.489938 42.086419,45.144845 45.760962,44.684382 C 50.286772,43.779564 55.087495,41.950311 57.853294,38.000557 C 60.138916,34.289524 60.145267,29.433874 58.634389,25.430395 C 57.087283,22.080743 54.260413,19.434414 50.911785,17.997950 C 47.968434,16.558785 45.219423,14.684895 43.122915,12.110831 C 41.438553,10.211653 39.639019,8.1204013 36.992461,7.7307323 C 34.192416,7.0769343 31.212750,7.9995413 29.117757,9.9505543 C 29.039124,10.005240 28.724417,10.223683 28.645699,10.278188"
|
||||||
|
id="path2690" />
|
||||||
|
<rect
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect2663"
|
||||||
|
width="16.811230"
|
||||||
|
height="5.5305181"
|
||||||
|
x="20.751286"
|
||||||
|
y="12.120670" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2705);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 49.688641,27.469151 C 52.587946,30.161165 51.610003,35.104229 48.721632,37.398745 C 46.521508,39.752837 43.366005,41.051703 40.169910,40.935822 C 38.686614,41.046423 36.032238,40.575611 35.334753,41.923973 C 38.554026,43.489938 42.086419,45.144845 45.760962,44.684382 C 50.286772,43.779564 55.087495,41.950311 57.853294,38.000557 C 60.138916,34.289524 60.145267,29.433874 58.634389,25.430395 C 57.087283,22.080743 54.260413,19.434414 50.911785,17.997950 C 47.968434,16.558785 45.219423,14.684895 43.122915,12.110831 C 41.438553,10.211653 39.639019,8.1204013 36.992461,7.7307323 C 34.192416,7.0769343 31.212750,7.9995413 29.117757,9.9505543 C 29.039124,10.005240 28.724417,10.223683 28.645699,10.278188"
|
||||||
|
id="path2681" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;fill-opacity:0.18431373;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.49803922;"
|
||||||
|
d="M 49.939180,36.537214 C 51.028542,36.817782 49.785208,36.155015 51.749719,37.500107 C 53.206863,38.447581 53.934568,38.033284 53.123088,36.413174 C 51.137586,33.319432 48.879247,36.187562 49.939180,36.537214 z "
|
||||||
|
id="path2732"
|
||||||
|
sodipodi:nodetypes="cccc" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;fill-opacity:0.18431373;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 42.574713,31.600630 C 44.190160,33.618298 42.679755,31.628347 42.920829,33.979079 C 39.274590,31.351380 37.638972,26.793605 37.749840,23.222961"
|
||||||
|
id="path2760"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2771);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 49.688641,27.469151 C 52.587946,30.161165 51.610003,35.104229 48.721632,37.398745 C 46.521508,39.752837 43.366005,41.051703 40.169910,40.935822 C 38.686614,41.046423 36.032238,40.575611 35.334753,41.923973 C 38.554026,43.489938 42.086419,45.144845 45.760962,44.684382 C 50.286772,43.779564 55.087495,41.950311 57.853294,38.000557 C 60.138916,34.289524 60.145267,29.433874 58.634389,25.430395 C 57.087283,22.080743 54.260413,19.434414 50.911785,17.997950 C 47.968434,16.558785 45.219423,14.684895 43.122915,12.110831 C 41.438553,10.211653 39.639019,8.1204013 36.992461,7.7307323 C 34.192416,7.0769343 31.212750,7.9995413 29.117757,9.9505543 C 29.039124,10.005240 28.724417,10.223683 28.645699,10.278188"
|
||||||
|
id="path2770" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2618);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 34.761822,15.898238 C 39.448558,14.961653 44.503003,17.212103 47.139349,21.220141 C 48.754800,23.237781 49.189534,25.880299 49.462060,28.383478 C 49.622203,29.854470 50.364826,31.124868 50.861928,32.448602 C 51.302809,33.622618 52.958296,34.268196 52.736200,35.710781 C 51.511366,36.271076 50.583675,34.929733 49.547479,34.520296 C 46.873549,33.463630 43.904415,32.873218 41.584839,31.047834 C 38.717925,28.758749 37.638972,24.878199 37.749840,21.307555"
|
||||||
|
id="path2489"
|
||||||
|
sodipodi:nodetypes="ccsscscc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2680);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 28.570036,10.693505 C 25.132324,8.7914473 20.977921,10.247680 17.989474,12.365601 C 15.356939,14.139089 13.165301,17.107321 9.7759361,17.306355 C 7.3840891,17.223562 5.6737888,14.703464 5.6166793,12.478782 C 5.2446280,9.2411713 7.4942020,5.5682663 10.596724,4.6087623 C 13.437036,3.7303723 16.538218,3.6303003 19.409439,3.3297553 C 21.616853,3.0987143 17.217524,1.2736593 15.973788,1.1040833 C 12.714640,0.65972930 9.8170271,1.2328933 6.7414888,2.7694893 C 3.3301443,4.4738333 2.2983475,6.0268983 1.1156930,9.3538423 C 0.021465961,12.432076 0.0017711857,16.283707 1.3676198,19.341962 C 2.8863370,22.653847 6.3096979,24.980760 9.9485046,24.871779 C 10.251710,24.874119 11.223026,24.862240 11.525113,24.835782"
|
||||||
|
id="path2674"
|
||||||
|
sodipodi:nodetypes="ccccsssssccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2684);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 28.570036,10.693505 C 25.132324,8.7914473 20.977921,10.247680 17.989474,12.365601 C 15.356939,14.139089 13.165301,17.107321 9.7759361,17.306355 C 7.3840891,17.223562 5.6737888,14.703464 5.6166793,12.478782 C 5.2446280,9.2411713 7.4942020,5.5682663 10.596724,4.6087623 C 13.437036,3.7303723 16.538218,3.6303003 19.409439,3.3297553 C 21.616853,3.0987143 17.217524,1.2736593 15.973788,1.1040833 C 12.714640,0.65972930 9.8170271,1.2328933 6.7414888,2.7694893 C 3.3301443,4.4738333 2.2983475,6.0268983 1.1156930,9.3538423 C 0.021465961,12.432076 0.0017711857,16.283707 1.3676198,19.341962 C 2.8863370,22.653847 6.3096979,24.980760 9.9485046,24.871779 C 10.251710,24.874119 11.223026,24.862240 11.525113,24.835782"
|
||||||
|
id="path2683"
|
||||||
|
sodipodi:nodetypes="ccccsssssccc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2686);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 5.6166793,11.840283 C 5.2446280,8.6027023 7.4942020,4.9297963 10.596724,3.9702943 C 13.437036,3.0918733 16.538218,2.9918013 19.409439,2.6912563 C 21.616853,2.4602143 17.217524,0.63522130 15.973788,0.46561330 C 12.714640,0.021230304 9.8170271,0.59442330 6.7414888,2.1310213 C 3.3301443,3.8353343 2.2983475,5.3884293 1.1156930,8.7153733 C 0.021465961,11.793607 0.0017711857,15.645239 1.3676198,18.703494"
|
||||||
|
id="path2685"
|
||||||
|
sodipodi:nodetypes="csssssc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2721);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 34.761822,15.898238 C 39.448558,14.961653 44.503003,17.212103 47.139349,21.220141 C 48.754800,23.237781 49.189534,25.880299 49.462060,28.383478 C 49.622203,29.854470 50.364826,31.124868 50.861928,32.448602 C 51.302809,33.622618 52.958296,34.268196 52.736200,35.710781 C 51.511366,36.271076 50.583675,34.929733 49.547479,34.520296 C 46.873549,33.463630 43.904415,32.873218 41.584839,31.047834 C 38.717925,28.758749 37.638972,24.878199 37.749840,21.307555"
|
||||||
|
id="path2720"
|
||||||
|
sodipodi:nodetypes="ccsscscc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient2773);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 5.6166793,11.840283 C 5.2446280,8.6027023 7.4942020,4.9297963 10.596724,3.9702943 C 13.437036,3.0918733 16.538218,2.9918013 19.409439,2.6912563 C 21.616853,2.4602143 17.217524,0.63522130 15.973788,0.46561330 C 12.714640,0.021230304 9.8170271,0.59442330 6.7414888,2.1310213 C 3.3301443,3.8353343 2.2983475,5.3884293 1.1156930,8.7153733 C 0.021465961,11.793607 0.0017711857,15.645239 1.3676198,18.703494"
|
||||||
|
id="path2772"
|
||||||
|
sodipodi:nodetypes="csssssc" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#radialGradient2688);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 28.570036,10.055036 C 25.132324,8.1529783 20.977921,9.6091823 17.989474,11.727132 C 15.356939,13.500590 13.165301,16.468883 9.7759361,16.667856 C 7.3840891,16.585093 5.6737888,14.064995 5.6166793,11.840283 C 5.2446280,8.6027023 7.4942020,4.9297963 10.596724,3.9702943 C 13.437036,3.0918733 16.538218,2.9918013 19.409439,2.6912563 C 21.616853,2.4602143 17.217524,0.63522130 15.973788,0.46561330 C 12.714640,0.021230304 9.8170271,0.59442330 6.7414888,2.1310213 C 3.3301443,3.8353343 2.2983475,5.3884293 1.1156930,8.7153733 C 0.021465961,11.793607 0.0017711857,15.645239 1.3676198,18.703494 C 2.8863370,22.015378 6.3096979,24.342291 9.9485046,24.233281 C 10.251710,24.235650 11.223026,24.223771 11.525113,24.197283"
|
||||||
|
id="path2687"
|
||||||
|
sodipodi:nodetypes="ccccsssssccc" />
|
||||||
|
<rect
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3185"
|
||||||
|
width="16.811230"
|
||||||
|
height="5.5305181"
|
||||||
|
x="20.751286"
|
||||||
|
y="12.120670" />
|
||||||
|
<rect
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3186"
|
||||||
|
width="16.811230"
|
||||||
|
height="5.5305181"
|
||||||
|
x="20.751286"
|
||||||
|
y="12.120670" />
|
||||||
|
<rect
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3187"
|
||||||
|
width="16.811230"
|
||||||
|
height="5.5305181"
|
||||||
|
x="20.751286"
|
||||||
|
y="12.120670" />
|
||||||
|
<rect
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3188"
|
||||||
|
width="16.811230"
|
||||||
|
height="5.5305181"
|
||||||
|
x="20.751286"
|
||||||
|
y="12.759109" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient3193);stroke-width:0.93750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3190"
|
||||||
|
sodipodi:cx="139.36806"
|
||||||
|
sodipodi:cy="134.82051"
|
||||||
|
sodipodi:rx="2.8240740"
|
||||||
|
sodipodi:ry="2.6828704"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 0 136.54398,134.82051 A 2.8240740 2.6828704 0 1 0 142.19213 134.82051 z"
|
||||||
|
transform="matrix(-0.354699,0.000000,0.000000,0.359590,80.63839,-24.35974)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient3191);stroke-width:0.72265625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3192"
|
||||||
|
sodipodi:cx="139.36806"
|
||||||
|
sodipodi:cy="134.82051"
|
||||||
|
sodipodi:rx="2.8240740"
|
||||||
|
sodipodi:ry="2.6828704"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 0 136.54398,134.82051 A 2.8240740 2.6828704 0 1 0 142.19213 134.82051 z"
|
||||||
|
transform="matrix(-0.312135,0.000000,0.000000,0.316442,63.48142,-18.65480)" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.63411951;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 33.858882,23.763818 C 32.750625,23.007489 32.030891,22.787366 30.657417,22.745430 C 30.179103,22.770718 29.577464,22.639838 29.212655,23.038536"
|
||||||
|
id="path2499"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.47558972;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
d="M 21.537167,23.399137 C 20.730427,22.920585 20.037875,22.800296 19.120029,22.898867 C 18.846788,23.113440 18.942838,22.873159 18.683459,23.110651"
|
||||||
|
id="path2500"
|
||||||
|
sodipodi:nodetypes="ccc" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 43 KiB |
|
@ -0,0 +1,9 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=GnoeMoe
|
||||||
|
GenericName=MOO Client
|
||||||
|
Comment=GnoeMoe Gnome MOO Client
|
||||||
|
Exec=gnoemoe
|
||||||
|
Icon=gnoemoe-logo.svg
|
||||||
|
Terminal=0
|
||||||
|
Type=Application
|
||||||
|
Categories=GNOME;GTK;Application;Network
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||||
|
<mime-type type="text/x-moo">
|
||||||
|
<comment>MOO Code</comment>
|
||||||
|
|
||||||
|
<glob pattern="*.moo"/>
|
||||||
|
</mime-type>
|
||||||
|
</mime-info>
|
|
@ -0,0 +1,217 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE language SYSTEM "language.dtd">
|
||||||
|
<language _name="MOO" version="1.0" _section="Sources" mimetypes="text/x-moo">
|
||||||
|
|
||||||
|
<escape-char>\</escape-char>
|
||||||
|
|
||||||
|
<line-comment _name = "Line Comment" style= "Comment" end-at-line-end = "TRUE">
|
||||||
|
<start-regex>^[ ]*"</start-regex>
|
||||||
|
<end-regex>"</end-regex>
|
||||||
|
</line-comment>
|
||||||
|
|
||||||
|
<string _name = "String" style = "String" end-at-line-end = "TRUE">
|
||||||
|
<start-regex>"</start-regex>
|
||||||
|
<end-regex>"</end-regex>
|
||||||
|
</string>
|
||||||
|
|
||||||
|
<keyword-list _name = "Keywords" style = "Keyword" case-sensitive="FALSE">
|
||||||
|
<keyword>if</keyword>
|
||||||
|
<keyword>else</keyword>
|
||||||
|
<keyword>elseif</keyword>
|
||||||
|
<keyword>endif</keyword>
|
||||||
|
<keyword>for</keyword>
|
||||||
|
<keyword>endfor</keyword>
|
||||||
|
<keyword>break</keyword>
|
||||||
|
<keyword>continue</keyword>
|
||||||
|
<keyword>while</keyword>
|
||||||
|
<keyword>endwhile</keyword>
|
||||||
|
<keyword>in</keyword>
|
||||||
|
<keyword>return</keyword>
|
||||||
|
<keyword>try</keyword>
|
||||||
|
<keyword>except</keyword>
|
||||||
|
<keyword>endtry</keyword>
|
||||||
|
<keyword>finally</keyword>
|
||||||
|
<keyword>fork</keyword>
|
||||||
|
<keyword>endfork</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<keyword-list _name = "Error" style = "Data Type" case-sensitive="FALSE">
|
||||||
|
<keyword>E_NONE</keyword>
|
||||||
|
<keyword>E_TYPE</keyword>
|
||||||
|
<keyword>E_DIV</keyword>
|
||||||
|
<keyword>E_PERM</keyword>
|
||||||
|
<keyword>E_PROPNF</keyword>
|
||||||
|
<keyword>E_VERBNF</keyword>
|
||||||
|
<keyword>E_VARNF</keyword>
|
||||||
|
<keyword>E_INVIND</keyword>
|
||||||
|
<keyword>E_RECMOVE</keyword>
|
||||||
|
<keyword>E_MAXREC</keyword>
|
||||||
|
<keyword>E_RANGE</keyword>
|
||||||
|
<keyword>E_ARGS</keyword>
|
||||||
|
<keyword>E_NACC</keyword>
|
||||||
|
<keyword>E_INVARG</keyword>
|
||||||
|
<keyword>E_QUOTA</keyword>
|
||||||
|
<keyword>E_FLOAT</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<keyword-list _name = "Builtin Functions" style = "Function" case-sensitive = "FALSE">
|
||||||
|
<keyword>abs</keyword>
|
||||||
|
<keyword>acos</keyword>
|
||||||
|
<keyword>add_property</keyword>
|
||||||
|
<keyword>asin</keyword>
|
||||||
|
<keyword>atan</keyword>
|
||||||
|
<keyword>binary_hash</keyword>
|
||||||
|
<keyword>boot_player</keyword>
|
||||||
|
<keyword>buffered_output_length</keyword>
|
||||||
|
<keyword>call_function</keyword>
|
||||||
|
<keyword>caller_perms</keyword>
|
||||||
|
<keyword>callers</keyword>
|
||||||
|
<keyword>ceil</keyword>
|
||||||
|
<keyword>children</keyword>
|
||||||
|
<keyword>chparent</keyword>
|
||||||
|
<keyword>clear_property</keyword>
|
||||||
|
<keyword>connected_players</keyword>
|
||||||
|
<keyword>connected_seconds</keyword>
|
||||||
|
<keyword>connection_name</keyword>
|
||||||
|
<keyword>connection_option</keyword>
|
||||||
|
<keyword>connection_options</keyword>
|
||||||
|
<keyword>cos</keyword>
|
||||||
|
<keyword>cosh</keyword>
|
||||||
|
<keyword>create</keyword>
|
||||||
|
<keyword>crypt</keyword>
|
||||||
|
<keyword>ctime</keyword>
|
||||||
|
<keyword>db_disk_size</keyword>
|
||||||
|
<keyword>decode_binary</keyword>
|
||||||
|
<keyword>delete_property</keyword>
|
||||||
|
<keyword>delete_verb</keyword>
|
||||||
|
<keyword>disassemble</keyword>
|
||||||
|
<keyword>dump_database</keyword>
|
||||||
|
<keyword>encode_binary</keyword>
|
||||||
|
<keyword>equal</keyword>
|
||||||
|
<keyword>eval</keyword>
|
||||||
|
<keyword>exp</keyword>
|
||||||
|
<keyword>floatstr</keyword>
|
||||||
|
<keyword>floor</keyword>
|
||||||
|
<keyword>flush_input</keyword>
|
||||||
|
<keyword>force_input</keyword>
|
||||||
|
<keyword>function_info</keyword>
|
||||||
|
<keyword>idle_seconds</keyword>
|
||||||
|
<keyword>index</keyword>
|
||||||
|
<keyword>is_clear_property</keyword>
|
||||||
|
<keyword>is_member</keyword>
|
||||||
|
<keyword>is_player</keyword>
|
||||||
|
<keyword>kill_task</keyword>
|
||||||
|
<keyword>length</keyword>
|
||||||
|
<keyword>listappend</keyword>
|
||||||
|
<keyword>listdelete</keyword>
|
||||||
|
<keyword>listen</keyword>
|
||||||
|
<keyword>listeners</keyword>
|
||||||
|
<keyword>listinsert</keyword>
|
||||||
|
<keyword>listset</keyword>
|
||||||
|
<keyword>log</keyword>
|
||||||
|
<keyword>log10</keyword>
|
||||||
|
<keyword>match</keyword>
|
||||||
|
<keyword>max</keyword>
|
||||||
|
<keyword>max_object</keyword>
|
||||||
|
<keyword>memory_usage</keyword>
|
||||||
|
<keyword>min</keyword>
|
||||||
|
<keyword>move</keyword>
|
||||||
|
<keyword>notify</keyword>
|
||||||
|
<keyword>object_bytes</keyword>
|
||||||
|
<keyword>open_network_connection</keyword>
|
||||||
|
<keyword>output_delimiters</keyword>
|
||||||
|
<keyword>parent</keyword>
|
||||||
|
<keyword>pass</keyword>
|
||||||
|
<keyword>players</keyword>
|
||||||
|
<keyword>properties</keyword>
|
||||||
|
<keyword>property_info</keyword>
|
||||||
|
<keyword>queue_info</keyword>
|
||||||
|
<keyword>queued_tasks</keyword>
|
||||||
|
<keyword>raise</keyword>
|
||||||
|
<keyword>random</keyword>
|
||||||
|
<keyword>read</keyword>
|
||||||
|
<keyword>recycle</keyword>
|
||||||
|
<keyword>renumber</keyword>
|
||||||
|
<keyword>reset_max_object</keyword>
|
||||||
|
<keyword>resume</keyword>
|
||||||
|
<keyword>rindex</keyword>
|
||||||
|
<keyword>rmatch</keyword>
|
||||||
|
<keyword>seconds_left</keyword>
|
||||||
|
<keyword>server_log</keyword>
|
||||||
|
<keyword>server_version</keyword>
|
||||||
|
<keyword>set_connection_option</keyword>
|
||||||
|
<keyword>set_player_flag</keyword>
|
||||||
|
<keyword>set_property_info</keyword>
|
||||||
|
<keyword>set_task_perms</keyword>
|
||||||
|
<keyword>set_verb_args</keyword>
|
||||||
|
<keyword>set_verb_code</keyword>
|
||||||
|
<keyword>set_verb_info</keyword>
|
||||||
|
<keyword>setadd</keyword>
|
||||||
|
<keyword>setremove</keyword>
|
||||||
|
<keyword>shutdown</keyword>
|
||||||
|
<keyword>sin</keyword>
|
||||||
|
<keyword>sinh</keyword>
|
||||||
|
<keyword>sqrt</keyword>
|
||||||
|
<keyword>strcmp</keyword>
|
||||||
|
<keyword>string_hash</keyword>
|
||||||
|
<keyword>strsub</keyword>
|
||||||
|
<keyword>substitute</keyword>
|
||||||
|
<keyword>suspend</keyword>
|
||||||
|
<keyword>tan</keyword>
|
||||||
|
<keyword>tanh</keyword>
|
||||||
|
<keyword>task_id</keyword>
|
||||||
|
<keyword>task_stack</keyword>
|
||||||
|
<keyword>ticks_left</keyword>
|
||||||
|
<keyword>time</keyword>
|
||||||
|
<keyword>tofloat</keyword>
|
||||||
|
<keyword>toint</keyword>
|
||||||
|
<keyword>toliteral</keyword>
|
||||||
|
<keyword>tonum</keyword>
|
||||||
|
<keyword>toobj</keyword>
|
||||||
|
<keyword>tostr</keyword>
|
||||||
|
<keyword>trunc</keyword>
|
||||||
|
<keyword>typeof</keyword>
|
||||||
|
<keyword>unlisten</keyword>
|
||||||
|
<keyword>valid</keyword>
|
||||||
|
<keyword>value_bytes</keyword>
|
||||||
|
<keyword>value_hash</keyword>
|
||||||
|
<keyword>verb_args</keyword>
|
||||||
|
<keyword>verb_code</keyword>
|
||||||
|
<keyword>verb_info</keyword>
|
||||||
|
<keyword>verbs</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<keyword-list _name = "Builtin Variables" style = "Data Type" case-sensitive = "FALSE">
|
||||||
|
<keyword>player</keyword>
|
||||||
|
<keyword>this</keyword>
|
||||||
|
<keyword>caller</keyword>
|
||||||
|
<keyword>verb</keyword>
|
||||||
|
<keyword>argstr</keyword>
|
||||||
|
<keyword>args</keyword>
|
||||||
|
<keyword>dobjstr</keyword>
|
||||||
|
<keyword>dobj</keyword>
|
||||||
|
<keyword>prepstr</keyword>
|
||||||
|
<keyword>iobjstr</keyword>
|
||||||
|
<keyword>iobj</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<keyword-list _name = "Types" style = "Data Type" case-sensitive="FALSE">
|
||||||
|
<keyword>ERR</keyword>
|
||||||
|
<keyword>LIST</keyword>
|
||||||
|
<keyword>STR</keyword>
|
||||||
|
<keyword>OBJ</keyword>
|
||||||
|
<keyword>INT</keyword>
|
||||||
|
<keyword>FLOAT</keyword>
|
||||||
|
<keyword>ANY</keyword>
|
||||||
|
</keyword-list>
|
||||||
|
|
||||||
|
<pattern-item _name = "S-Ref" style = "Data Type" case-sensitive="FALSE">
|
||||||
|
<regex>\$[A-Za-z0-9_]+</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
<pattern-item _name = "Object Number" style = "Base-N Integer">
|
||||||
|
<regex>#[-]?[0-9]+</regex>
|
||||||
|
</pattern-item>
|
||||||
|
|
||||||
|
|
||||||
|
</language>
|
|
@ -0,0 +1,14 @@
|
||||||
|
SUBDIRS = userlist ice-userlist tray
|
||||||
|
|
||||||
|
pixmapsdir = $(pkgdatadir)/pixmaps
|
||||||
|
pixmaps_DATA = close.xpm \
|
||||||
|
editor.xpm \
|
||||||
|
editor_text.xpm \
|
||||||
|
editor_verb.xpm \
|
||||||
|
gnoemoe_logo.svg \
|
||||||
|
saveclose.xpm \
|
||||||
|
terminal.png \
|
||||||
|
world.svg \
|
||||||
|
world_activity.svg
|
||||||
|
|
||||||
|
EXTRA_DIST = $(pixmaps_DATA)
|
|
@ -0,0 +1,74 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * editor_xpm[] = {
|
||||||
|
"16 16 55 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"+ c #FEFEFE",
|
||||||
|
"@ c #FDFDFD",
|
||||||
|
"# c #E0E0E0",
|
||||||
|
"$ c #C1C1C1",
|
||||||
|
"% c #F1F1F1",
|
||||||
|
"& c #C3C3C3",
|
||||||
|
"* c #FBFBFB",
|
||||||
|
"= c #A8A8A8",
|
||||||
|
"- c #BEBEBE",
|
||||||
|
"; c #B5B5B5",
|
||||||
|
"> c #CACACA",
|
||||||
|
", c #ADADAD",
|
||||||
|
"' c #767676",
|
||||||
|
") c #5D5D5D",
|
||||||
|
"! c #404040",
|
||||||
|
"~ c #F0F0F0",
|
||||||
|
"{ c #E2E2E2",
|
||||||
|
"] c #858585",
|
||||||
|
"^ c #4B4B49",
|
||||||
|
"/ c #161616",
|
||||||
|
"( c #B3B3B3",
|
||||||
|
"_ c #C8C8C8",
|
||||||
|
": c #BDBDBD",
|
||||||
|
"< c #EFEFEF",
|
||||||
|
"[ c #EEEEEE",
|
||||||
|
"} c #C5C5C5",
|
||||||
|
"| c #ECECEC",
|
||||||
|
"1 c #C4C4C4",
|
||||||
|
"2 c #D3D3D3",
|
||||||
|
"3 c #BCBCBC",
|
||||||
|
"4 c #C7C7C7",
|
||||||
|
"5 c #EBEBEB",
|
||||||
|
"6 c #EDEDED",
|
||||||
|
"7 c #EAEAEA",
|
||||||
|
"8 c #C2C2C2",
|
||||||
|
"9 c #E8E8E8",
|
||||||
|
"0 c #686E83",
|
||||||
|
"a c #C0C0C0",
|
||||||
|
"b c #E9E9E9",
|
||||||
|
"c c #878BA5",
|
||||||
|
"d c #7C84A3",
|
||||||
|
"e c #E7E7E7",
|
||||||
|
"f c #BFBFBF",
|
||||||
|
"g c #E6E6E6",
|
||||||
|
"h c #A7A2A6",
|
||||||
|
"i c #9795A1",
|
||||||
|
"j c #E5E5E5",
|
||||||
|
"k c #686D83",
|
||||||
|
"l c #676D82",
|
||||||
|
"m c #E4E4E4",
|
||||||
|
"n c #E3E3E3",
|
||||||
|
"o c #BBBBBB",
|
||||||
|
"p c #A0A0A0",
|
||||||
|
" ......... ",
|
||||||
|
" .++++++@#$. ",
|
||||||
|
" .+%%%%%%&*=. ",
|
||||||
|
" .+%-;->%,')!. ",
|
||||||
|
" .+%%%%%~{]^/. ",
|
||||||
|
" .+%(_:(#<[[}. ",
|
||||||
|
" .+<#<[[[[[|1. ",
|
||||||
|
" .@[(2(33445&. ",
|
||||||
|
" .@6|||55777$. ",
|
||||||
|
" .@588900009a. ",
|
||||||
|
" .@77bb0cd0ef. ",
|
||||||
|
" .@9$$g0hi0j-. ",
|
||||||
|
" .@eegg0kklm:. ",
|
||||||
|
" .@gjjjmmnnno. ",
|
||||||
|
" .8:::33oooop. ",
|
||||||
|
" ........... "};
|
|
@ -0,0 +1,80 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * editor_text_xpm[] = {
|
||||||
|
"16 16 61 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"+ c #FEFEFE",
|
||||||
|
"@ c #FDFDFD",
|
||||||
|
"# c #E0E0E0",
|
||||||
|
"$ c #C1C1C1",
|
||||||
|
"% c #F1F1F1",
|
||||||
|
"& c #C3C3C3",
|
||||||
|
"* c #FBFBFB",
|
||||||
|
"= c #A8A8A8",
|
||||||
|
"- c #CCCCCC",
|
||||||
|
"; c #ADADAD",
|
||||||
|
"> c #767676",
|
||||||
|
", c #5D5D5D",
|
||||||
|
"' c #404040",
|
||||||
|
") c #F0F0F0",
|
||||||
|
"! c #E2E2E2",
|
||||||
|
"~ c #858585",
|
||||||
|
"{ c #4B4B49",
|
||||||
|
"] c #FBE73B",
|
||||||
|
"^ c #F2B64D",
|
||||||
|
"/ c #CACACA",
|
||||||
|
"( c #EFEFEF",
|
||||||
|
"_ c #C9C9C9",
|
||||||
|
": c #FCEB3D",
|
||||||
|
"< c #F7B544",
|
||||||
|
"[ c #675A36",
|
||||||
|
"} c #EEEEEE",
|
||||||
|
"| c #FCE93B",
|
||||||
|
"1 c #F7B545",
|
||||||
|
"2 c #6C5F34",
|
||||||
|
"3 c #F9DF39",
|
||||||
|
"4 c #F4B244",
|
||||||
|
"5 c #665D3E",
|
||||||
|
"6 c #EDEDED",
|
||||||
|
"7 c #ECECEC",
|
||||||
|
"8 c #EBEBEB",
|
||||||
|
"9 c #F6D236",
|
||||||
|
"0 c #EFB44D",
|
||||||
|
"a c #5C4F2B",
|
||||||
|
"b c #C4C4C4",
|
||||||
|
"c c #E8E8E8",
|
||||||
|
"d c #D7AE74",
|
||||||
|
"e c #655930",
|
||||||
|
"f c #C0C0C0",
|
||||||
|
"g c #EAEAEA",
|
||||||
|
"h c #E9E9E9",
|
||||||
|
"i c #4F4115",
|
||||||
|
"j c #E7E7E7",
|
||||||
|
"k c #BFBFBF",
|
||||||
|
"l c #C2C2C2",
|
||||||
|
"m c #E6E6E6",
|
||||||
|
"n c #E5E5E5",
|
||||||
|
"o c #BEBEBE",
|
||||||
|
"p c #E4E4E4",
|
||||||
|
"q c #BDBDBD",
|
||||||
|
"r c #E3E3E3",
|
||||||
|
"s c #BBBBBB",
|
||||||
|
"t c #BCBCBC",
|
||||||
|
"u c #A0A0A0",
|
||||||
|
"v c #2A2A2A",
|
||||||
|
" ......... ",
|
||||||
|
".++++++@#$. ",
|
||||||
|
".+%%%%%%&*=. ",
|
||||||
|
".+%---%%;>,'.. ",
|
||||||
|
".+%%%%%)!~{.]^. ",
|
||||||
|
".+%////(/_.:<[. ",
|
||||||
|
".+(((}}}}.|12. ",
|
||||||
|
".@}__}__.345. ",
|
||||||
|
".@67778.90a.. ",
|
||||||
|
".@8bbbc.de.f. ",
|
||||||
|
".@gghh.i..jk. ",
|
||||||
|
".@clml..mmno. ",
|
||||||
|
".@jjmmmnnppq. ",
|
||||||
|
".@mnnnpprrrs. ",
|
||||||
|
".lqqqttssssuv ",
|
||||||
|
" ........... "};
|
|
@ -0,0 +1,83 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * editor_verb_xpm[] = {
|
||||||
|
"16 16 64 1",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"+ c #FEFEFE",
|
||||||
|
"@ c #FDFDFD",
|
||||||
|
"# c #E0E0E0",
|
||||||
|
"$ c #C1C1C1",
|
||||||
|
"% c #F1F1F1",
|
||||||
|
"& c #C3C3C3",
|
||||||
|
"* c #FBFBFB",
|
||||||
|
"= c #A8A8A8",
|
||||||
|
"- c #0000FF",
|
||||||
|
"; c #00FF00",
|
||||||
|
"> c #ADADAD",
|
||||||
|
", c #767676",
|
||||||
|
"' c #5D5D5D",
|
||||||
|
") c #404040",
|
||||||
|
"! c #F0F0F0",
|
||||||
|
"~ c #E2E2E2",
|
||||||
|
"{ c #858585",
|
||||||
|
"] c #4B4B49",
|
||||||
|
"^ c #FBE73B",
|
||||||
|
"/ c #F2B64D",
|
||||||
|
"( c #FF0000",
|
||||||
|
"_ c #EFEFEF",
|
||||||
|
": c #CACACA",
|
||||||
|
"< c #C9C9C9",
|
||||||
|
"[ c #FCEB3D",
|
||||||
|
"} c #F7B544",
|
||||||
|
"| c #675A36",
|
||||||
|
"1 c #EEEEEE",
|
||||||
|
"2 c #FCE93B",
|
||||||
|
"3 c #F7B545",
|
||||||
|
"4 c #6C5F34",
|
||||||
|
"5 c #000080",
|
||||||
|
"6 c #F9DF39",
|
||||||
|
"7 c #F4B244",
|
||||||
|
"8 c #665D3E",
|
||||||
|
"9 c #EDEDED",
|
||||||
|
"0 c #ECECEC",
|
||||||
|
"a c #EBEBEB",
|
||||||
|
"b c #F6D236",
|
||||||
|
"c c #EFB44D",
|
||||||
|
"d c #5C4F2B",
|
||||||
|
"e c #E8E8E8",
|
||||||
|
"f c #D7AE74",
|
||||||
|
"g c #655930",
|
||||||
|
"h c #C0C0C0",
|
||||||
|
"i c #EAEAEA",
|
||||||
|
"j c #E9E9E9",
|
||||||
|
"k c #4F4115",
|
||||||
|
"l c #E7E7E7",
|
||||||
|
"m c #BFBFBF",
|
||||||
|
"n c #FFFF00",
|
||||||
|
"o c #E6E6E6",
|
||||||
|
"p c #E5E5E5",
|
||||||
|
"q c #BEBEBE",
|
||||||
|
"r c #E4E4E4",
|
||||||
|
"s c #BDBDBD",
|
||||||
|
"t c #E3E3E3",
|
||||||
|
"u c #BBBBBB",
|
||||||
|
"v c #C2C2C2",
|
||||||
|
"w c #BCBCBC",
|
||||||
|
"x c #A0A0A0",
|
||||||
|
"y c #2A2A2A",
|
||||||
|
" ......... ",
|
||||||
|
".++++++@#$. ",
|
||||||
|
".+%%%%%%&*=. ",
|
||||||
|
".+%---;;>,').. ",
|
||||||
|
".+%%%%%!~{].^/. ",
|
||||||
|
".+%;;((_:<.[}|. ",
|
||||||
|
".+___1111.234. ",
|
||||||
|
".@155;--.678. ",
|
||||||
|
".@9000a.bcd.. ",
|
||||||
|
".@a-((e.fg.h. ",
|
||||||
|
".@iijj.k..lm. ",
|
||||||
|
".@en;;..oopq. ",
|
||||||
|
".@llooopprrs. ",
|
||||||
|
".@o((--((;tu. ",
|
||||||
|
".vssswwuuuuxy ",
|
||||||
|
" ........... "};
|
|
@ -0,0 +1,592 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1"
|
||||||
|
height="250.00000"
|
||||||
|
width="250.00000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2676">
|
||||||
|
<stop
|
||||||
|
id="stop2677"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2678"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2665">
|
||||||
|
<stop
|
||||||
|
id="stop2666"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#2f2f2f;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2667"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#2f2f2f;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2655">
|
||||||
|
<stop
|
||||||
|
id="stop2656"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#212121;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2658"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#212121;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2648">
|
||||||
|
<stop
|
||||||
|
id="stop2649"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#212121;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2650"
|
||||||
|
offset="0.50000000"
|
||||||
|
style="stop-color:#212121;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2651"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#212121;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2627">
|
||||||
|
<stop
|
||||||
|
id="stop2628"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#3f3f3f;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2630"
|
||||||
|
offset="0.50000000"
|
||||||
|
style="stop-color:#3f3f3f;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2629"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ff3a03;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2619">
|
||||||
|
<stop
|
||||||
|
id="stop2620"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2621"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#bb7733;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2614">
|
||||||
|
<stop
|
||||||
|
id="stop2615"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2616"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#bb7733;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2610">
|
||||||
|
<stop
|
||||||
|
id="stop2611"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2612"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2524">
|
||||||
|
<stop
|
||||||
|
id="stop2525"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2526"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2517">
|
||||||
|
<stop
|
||||||
|
id="stop2518"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2520"
|
||||||
|
offset="0.50000000"
|
||||||
|
style="stop-color:#ffff00;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2521"
|
||||||
|
offset="0.75000000"
|
||||||
|
style="stop-color:#ffff00;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2522"
|
||||||
|
offset="0.75000000"
|
||||||
|
style="stop-color:#7f7f00;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2519"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2509">
|
||||||
|
<stop
|
||||||
|
id="stop2510"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2511"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2524"
|
||||||
|
id="linearGradient2512"
|
||||||
|
y2="0.96052629"
|
||||||
|
x2="0.49561402"
|
||||||
|
y1="0.32236841"
|
||||||
|
x1="0.37719297" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="linearGradient2609"
|
||||||
|
y2="0.75333333"
|
||||||
|
x2="0.64857143"
|
||||||
|
y1="0.059999999"
|
||||||
|
x1="0.44571429" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2613"
|
||||||
|
y2="0.81578946"
|
||||||
|
x2="0.55000001"
|
||||||
|
y1="0.51973683"
|
||||||
|
x1="0.037500001" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2617"
|
||||||
|
y2="0.86184210"
|
||||||
|
x2="0.27692309"
|
||||||
|
y1="0.61842108"
|
||||||
|
x1="-0.069230773" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2619"
|
||||||
|
id="linearGradient2618"
|
||||||
|
y2="0.40789473"
|
||||||
|
x2="8.3427189e-15"
|
||||||
|
y1="0.96052629"
|
||||||
|
x1="1.7826087" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2622"
|
||||||
|
y2="0.65789473"
|
||||||
|
x2="0.64864862"
|
||||||
|
y1="0.74342108"
|
||||||
|
x1="-0.35135135" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2614"
|
||||||
|
id="linearGradient2623"
|
||||||
|
y2="0.24342105"
|
||||||
|
x2="0.36956522"
|
||||||
|
y1="0.50000000"
|
||||||
|
x1="4.0435971e-14" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2655"
|
||||||
|
id="linearGradient2624"
|
||||||
|
y2="0.80263156"
|
||||||
|
x2="0.81818181"
|
||||||
|
y1="0.35526314"
|
||||||
|
x1="0.45454547" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2619"
|
||||||
|
id="linearGradient2625"
|
||||||
|
y2="0.52631581"
|
||||||
|
x2="0.76315790"
|
||||||
|
y1="0.74342108"
|
||||||
|
x1="1.3596492" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2633"
|
||||||
|
fy="0.69736838"
|
||||||
|
fx="0.48461536"
|
||||||
|
r="0.33903649"
|
||||||
|
cy="0.69078946"
|
||||||
|
cx="0.47692308" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="radialGradient2664"
|
||||||
|
fy="0.50000000"
|
||||||
|
fx="0.50000000"
|
||||||
|
r="0.50000000"
|
||||||
|
cy="0.50000000"
|
||||||
|
cx="0.50000000" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="radialGradient2680"
|
||||||
|
fy="0.49342105"
|
||||||
|
fx="0.40659341"
|
||||||
|
r="0.29306078"
|
||||||
|
cy="0.48684210"
|
||||||
|
cx="0.40659341" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2682"
|
||||||
|
fy="-0.20394737"
|
||||||
|
fx="0.084615365"
|
||||||
|
r="0.33903649"
|
||||||
|
cy="-0.21710527"
|
||||||
|
cx="0.092307694" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="radialGradient2684"
|
||||||
|
fy="0.32894737"
|
||||||
|
fx="0.65384614"
|
||||||
|
r="0.26406428"
|
||||||
|
cy="0.31578946"
|
||||||
|
cx="0.65384614" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2686"
|
||||||
|
y2="0.35526314"
|
||||||
|
x2="0.25903615"
|
||||||
|
y1="4.8799825e-15"
|
||||||
|
x1="-0.024096385" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="radialGradient2688"
|
||||||
|
fy="0.48684207"
|
||||||
|
fx="0.39560434"
|
||||||
|
r="0.32444274"
|
||||||
|
cy="0.40131578"
|
||||||
|
cx="0.47252747" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2705"
|
||||||
|
fy="-0.13157894"
|
||||||
|
fx="0.13076918"
|
||||||
|
r="0.23086299"
|
||||||
|
cy="-0.13815789"
|
||||||
|
cx="0.10769231" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2619"
|
||||||
|
id="linearGradient2719"
|
||||||
|
y2="0.96710527"
|
||||||
|
x2="0.38202247"
|
||||||
|
y1="0.79605263"
|
||||||
|
x1="0.23595506" />
|
||||||
|
<linearGradient
|
||||||
|
spreadMethod="pad"
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2721"
|
||||||
|
y2="0.42763159"
|
||||||
|
x2="0.24637681"
|
||||||
|
y1="0.74342108"
|
||||||
|
x1="-0.057971016" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="radialGradient2723"
|
||||||
|
fy="0.38888884"
|
||||||
|
fx="0.49999997"
|
||||||
|
r="0.66668981"
|
||||||
|
cy="0.38888890"
|
||||||
|
cx="0.49549550" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2725"
|
||||||
|
y2="0.80263156"
|
||||||
|
x2="0.20967741"
|
||||||
|
y1="0.37500000"
|
||||||
|
x1="-0.33870968" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2759"
|
||||||
|
y2="0.75657892"
|
||||||
|
x2="0.62426037"
|
||||||
|
y1="0.93421054"
|
||||||
|
x1="0.94674557" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="radialGradient2768"
|
||||||
|
fy="0.44078946"
|
||||||
|
fx="0.27272728"
|
||||||
|
r="0.41422856"
|
||||||
|
cy="0.42105263"
|
||||||
|
cx="0.32575756" />
|
||||||
|
<radialGradient
|
||||||
|
xlink:href="#linearGradient2610"
|
||||||
|
id="radialGradient2771"
|
||||||
|
fy="0.68421048"
|
||||||
|
fx="0.32307690"
|
||||||
|
r="0.34615383"
|
||||||
|
cy="0.67763156"
|
||||||
|
cx="0.32307693" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient2773"
|
||||||
|
y2="0.17105263"
|
||||||
|
x2="0.34337351"
|
||||||
|
y1="-2.3035188e-14"
|
||||||
|
x1="-0.024096385" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2665"
|
||||||
|
id="linearGradient2775"
|
||||||
|
y2="0.36842105"
|
||||||
|
x2="0.41176471"
|
||||||
|
y1="-0.046052631"
|
||||||
|
x1="0.50000000" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient3191"
|
||||||
|
y2="0.50555557"
|
||||||
|
x2="0.45263159"
|
||||||
|
y1="-2.1497310e-14"
|
||||||
|
x1="0.98947370" />
|
||||||
|
<linearGradient
|
||||||
|
xlink:href="#linearGradient2676"
|
||||||
|
id="linearGradient3193"
|
||||||
|
y2="0.50555557"
|
||||||
|
x2="0.45263159"
|
||||||
|
y1="0.16111112"
|
||||||
|
x1="0.82631576" />
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
id="path2581"
|
||||||
|
style="fill:url(#linearGradient2625);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 73.251670,175.06379 C 75.472630,176.12805 75.464890,178.87938 74.939210,180.90744 C 70.524660,187.74481 76.472040,193.61695 83.689440,191.46974 C 90.906840,189.32253 98.192490,189.75552 92.189660,198.78205 C 86.186820,207.80858 89.161810,217.92619 98.721070,219.75046 C 108.04635,225.13166 108.59869,235.92485 105.43999,242.84382 C 113.21231,238.86480 117.72901,228.34670 115.69025,219.50046 C 121.53858,222.72170 119.78423,227.65851 118.15906,232.00023 C 113.98114,237.25673 121.97848,234.63578 123.34670,229.09408 C 126.59052,223.77168 122.42672,220.91783 128.00307,216.65671 C 135.80059,211.57531 139.86603,203.77486 133.12820,198.50086 C 140.53287,209.13646 141.93053,186.11186 157.34756,177.68875 C 167.46117,182.08170 181.16609,146.03561 178.44485,123.05762 C 187.51798,108.52704 164.91593,40.966970 154.40999,39.441340 C 151.63118,38.801340 148.80544,38.530830 146.00352,38.628850 C 137.59775,38.922940 129.39650,42.399310 122.06542,48.331790 C 107.32508,41.087380 90.833690,46.804540 78.970570,55.097290 C 68.520300,62.041350 59.830630,73.661560 46.375988,74.440680 C 36.881164,74.116570 30.102274,64.245600 29.875568,55.534790 C 28.398651,42.857970 37.310097,28.479790 49.626070,24.722860 C 60.901140,21.283480 73.229190,20.868490 84.626960,19.691710 C 93.389640,18.787000 75.907570,11.668360 70.970360,11.004370 C 67.735930,10.569390 64.589860,10.382150 61.501370,10.441880 C 52.235894,10.621070 43.501070,12.991880 34.344432,17.504250 C 20.802551,24.177650 16.694852,30.258280 12.000113,43.285020 C 7.6564020,55.337780 7.5781800,70.434610 13.000138,82.409280 C 19.028933,95.376880 32.618678,104.49202 47.063506,104.06513 C 48.267134,104.07431 52.114474,104.01250 53.313660,103.90888 L 53.719920,103.59639 C 52.152924,107.21154 50.578002,110.84247 49.126058,114.37743 C 46.915583,119.75910 34.251399,128.78072 46.313487,128.68966 C 56.155900,127.04008 66.859690,126.11039 74.751710,119.25234 C 77.041350,117.56136 75.346990,122.14465 75.814240,127.43969 C 76.000090,128.31976 76.403220,129.15664 76.939270,129.87714 C 77.475320,130.59765 74.989920,135.31974 69.907830,133.50207 C 65.474020,129.62085 59.619240,134.58733 59.751330,139.62696 C 58.887710,146.27725 63.353040,152.08385 68.376540,155.87665 C 69.778660,157.08130 71.259760,158.22613 72.782910,159.28284 L 72.720400,159.31409 C 72.811830,160.27333 73.206340,161.14428 73.470420,162.06404 L 73.282920,162.09529 C 72.352390,165.79494 61.501220,167.92358 67.407770,171.72011 C 73.314320,175.51666 78.794120,175.60238 81.908150,175.31379" />
|
||||||
|
<path
|
||||||
|
id="path2498"
|
||||||
|
style="fill:#2f2f2f;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 120.98378,48.536170 C 107.33723,41.088600 90.845650,46.790510 78.982530,55.083270 C 68.532260,62.027310 59.832200,73.649520 46.377558,74.428640 C 36.882736,74.104550 30.093423,64.237210 29.866718,55.526400 C 28.389800,42.849610 37.319848,28.468260 49.635821,24.711330 C 60.910890,21.271940 73.221540,20.880150 84.619310,19.703370 C 93.382000,18.798660 75.918150,11.652800 70.980940,10.988810 C 58.043230,9.2488900 46.540682,11.493130 34.331831,17.509620 C 20.789946,24.183020 16.694062,30.264040 11.999323,43.290780 C 7.6556120,55.343520 7.5774300,70.424600 12.999388,82.399270 C 19.028182,95.366870 32.617768,104.47796 47.062596,104.05107 C 48.266226,104.06027 52.122014,104.01375 53.321200,103.91013" />
|
||||||
|
<path
|
||||||
|
id="path2486"
|
||||||
|
style="fill:url(#linearGradient2759);fill-opacity:0.12156863;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 133.39846,150.36760 C 130.42446,154.86741 123.05775,179.79375 105.37588,179.47891 C 97.308330,179.05784 90.311400,173.14109 81.899050,175.29819 C 78.785030,175.58677 73.311740,175.51259 67.405190,171.71604 C 61.498640,167.91949 72.364540,165.79619 73.295060,162.09654" />
|
||||||
|
<path
|
||||||
|
id="path2762"
|
||||||
|
style="fill:url(#radialGradient2768);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 133.40946,150.37676 C 141.96770,142.38172 172.44368,153.88590 126.95567,193.17890 C 114.91231,203.58207 87.298140,190.39614 83.689440,191.46974 C 76.472040,193.61694 70.524660,187.74481 74.939210,180.90744 C 78.911820,177.16360 61.501220,167.92356 67.407770,171.72011 C 73.314320,175.51666 78.794120,175.60238 81.908150,175.31379 C 90.320500,173.15669 97.309950,179.04887 105.37749,179.46996 C 123.05936,179.78480 130.43546,154.87657 133.40946,150.37676 z " />
|
||||||
|
<path
|
||||||
|
id="path2507"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:10.000033;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 104.18532,148.98160 C 107.65882,157.23228 103.23813,166.69261 98.029260,170.46198 C 91.727950,175.35479 82.217800,174.53043 76.821030,168.49016 C 74.560100,166.02538 73.062400,162.74500 72.734140,159.30096" />
|
||||||
|
<path
|
||||||
|
id="path2722"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#radialGradient2723);stroke-width:10.000033;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 108.74349,151.62019 C 112.21699,159.87087 107.79631,169.33120 102.58744,173.10057 C 96.286130,177.99338 86.775980,177.16903 81.379200,171.12875 C 79.118290,168.66397 77.620590,165.38359 77.292330,161.93955" />
|
||||||
|
<path
|
||||||
|
id="path2527"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:5.0000167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 103.56030,147.10664 C 107.97132,158.48226 103.23813,166.69261 98.029260,170.46198 C 91.727950,175.35479 82.217800,174.53043 76.821030,168.49016 C 74.560100,166.02538 73.062400,162.74500 72.734140,159.30096" />
|
||||||
|
<path
|
||||||
|
id="path2529"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#bbbb00;stroke-width:1.8750064;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 105.43535,145.23167 C 112.03393,161.29470 102.61312,175.75494 87.716500,175.46189" />
|
||||||
|
<path
|
||||||
|
id="path2492"
|
||||||
|
style="fill:url(#linearGradient2512);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 109.69645,145.96936 C 111.80988,142.85496 106.95800,139.38538 104.69738,142.47019 C 102.32670,144.28557 100.41691,146.61417 98.117440,148.51097" />
|
||||||
|
<path
|
||||||
|
id="path2774"
|
||||||
|
style="fill:url(#linearGradient2775);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 97.021020,208.16272 C 99.978440,216.57092 113.76227,202.01750 110.54369,197.93135 C 104.99043,193.29450 99.048250,193.01209 97.395880,190.58640 C 90.178470,192.73362 95.220840,203.04467 97.021020,208.16272 z " />
|
||||||
|
<path
|
||||||
|
id="path2493"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 110.54369,197.93135 C 104.10653,189.75904 92.860900,191.24435 83.695330,191.47027 C 76.477930,193.61749 70.523090,187.73166 74.937640,180.89429 C 75.463320,178.86626 75.485920,176.12104 73.264960,175.05677" />
|
||||||
|
<path
|
||||||
|
id="path2494"
|
||||||
|
style="fill:url(#linearGradient2623);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 92.186750,198.77855 C 86.183910,207.80508 89.149130,217.91777 98.708390,219.74202 C 108.03367,225.12326 108.60496,235.93537 105.44626,242.85422 C 113.21858,238.87534 117.72355,228.33178 112.09095,220.73554 C 111.85760,220.38246 111.62428,220.02937 111.39093,219.67630" />
|
||||||
|
<path
|
||||||
|
id="path2495"
|
||||||
|
style="fill:url(#linearGradient2624);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 133.13687,198.49616 C 139.87470,203.77014 135.79866,211.56565 128.00114,216.64715 C 122.42480,220.90828 126.59402,223.77506 123.35020,229.09742 C 121.98197,234.63904 113.97672,237.26949 118.15464,232.01305 C 119.77980,227.67135 121.55304,222.73546 119.29855,218.26428" />
|
||||||
|
<path
|
||||||
|
id="path2496"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 177.19355,134.39086 C 180.49975,146.68525 174.99524,159.60022 166.44270,169.16005 C 157.70329,178.92874 142.20054,187.00285 140.19723,200.75537" />
|
||||||
|
<path
|
||||||
|
id="path2497"
|
||||||
|
style="fill:#2f2f2f;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 204.81752,116.72114 C 216.32678,127.26171 212.44467,146.61619 200.97882,155.60046 C 192.24506,164.81793 179.71879,169.90365 167.03137,169.44991 C 161.14319,169.88291 150.60621,168.03947 147.83743,173.31893 C 160.61686,179.45040 174.63926,185.93022 189.22596,184.12736 C 207.19189,180.58458 226.24914,173.42201 237.22844,157.95689 C 246.30158,143.42630 246.32679,124.41390 240.32911,108.73831 C 234.18763,95.622730 222.96591,85.261190 209.67299,79.636570 C 197.98888,74.001690 187.07624,66.664440 178.75380,56.585650 C 172.06746,49.149370 164.92391,40.961050 154.41797,39.435420 C 143.30274,36.875430 131.47447,40.487870 123.15806,48.127030 C 122.84591,48.341200 121.59663,49.196450 121.28415,49.409900" />
|
||||||
|
<rect
|
||||||
|
id="rect2645"
|
||||||
|
style="fill:#2f2f2f;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
y="48.379028"
|
||||||
|
x="94.807465"
|
||||||
|
height="22.980539"
|
||||||
|
width="53.034359" />
|
||||||
|
<path
|
||||||
|
id="path2491"
|
||||||
|
style="fill:url(#linearGradient2617);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 88.821520,72.513160 C 79.882820,76.352190 68.259970,74.820510 63.324090,84.771910 C 57.517860,93.763780 53.208970,104.44964 49.128668,114.38371 C 46.918192,119.76539 34.264170,128.77388 46.326257,128.68282 C 56.168670,127.03324 66.869080,126.11861 74.761100,119.26056 C 77.140450,117.50335 79.048150,115.23356 81.172590,113.21071" />
|
||||||
|
<path
|
||||||
|
id="path2707"
|
||||||
|
style="fill:url(#linearGradient2719);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 45.313460,127.68968 C 59.841910,115.01165 74.671950,123.83846 82.189400,95.815280 C 81.751690,95.633910 86.818180,108.98869 81.158130,113.22120 C 79.033690,115.24405 77.131060,117.49511 74.751710,119.25234 C 66.859690,126.11039 56.155900,127.04008 46.313487,128.68966" />
|
||||||
|
<path
|
||||||
|
id="path2490"
|
||||||
|
style="fill:url(#linearGradient2725);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 98.399860,70.003190 C 89.976310,69.937430 83.761450,76.301570 81.087110,83.713910 C 77.748060,91.487080 86.127790,98.076400 84.068860,105.82177 C 82.803770,113.56541 75.099060,119.24254 75.822450,127.44007 C 76.008300,128.32013 76.400310,129.15194 76.936360,129.87244" />
|
||||||
|
<path
|
||||||
|
id="path2632"
|
||||||
|
style="fill:url(#radialGradient2633);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 204.81752,116.72114 C 216.32678,127.26171 212.44467,146.61619 200.97882,155.60046 C 192.24506,164.81793 179.71879,169.90365 167.03137,169.44991 C 161.14319,169.88291 150.60621,168.03947 147.83743,173.31893 C 160.61686,179.45040 174.63926,185.93022 189.22596,184.12736 C 207.19189,180.58458 226.24914,173.42201 237.22844,157.95689 C 246.30158,143.42630 246.32679,124.41390 240.32911,108.73831 C 234.18763,95.622730 222.96591,85.261190 209.67299,79.636570 C 197.98888,74.001690 187.07624,66.664440 178.75380,56.585650 C 172.06746,49.149370 164.92391,40.961050 154.41797,39.435420 C 143.30274,36.875430 131.47447,40.487870 123.15806,48.127030 C 122.84591,48.341200 121.59663,49.196450 121.28415,49.409900" />
|
||||||
|
<path
|
||||||
|
id="path2501"
|
||||||
|
style="fill:url(#linearGradient2622);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 103.20089,201.32015 C 104.07556,205.74235 97.723880,208.03336 99.080290,212.47027 C 101.24559,217.77738 108.33027,219.67227 109.41404,225.60675" />
|
||||||
|
<path
|
||||||
|
id="path2502"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
transform="matrix(-2.000050,0.000000,0.000000,1.999962,410.1856,-166.0270)"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 1 136.54398,134.82051 A 2.8240740 2.6828704 0 1 1 142.19213 134.82051 z" />
|
||||||
|
<path
|
||||||
|
id="path2503"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
transform="matrix(-1.421688,0.000000,0.000000,1.483592,285.2254,-96.99050)"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 1 136.54398,134.82051 A 2.8240740 2.6828704 0 1 1 142.19213 134.82051 z" />
|
||||||
|
<path
|
||||||
|
id="path2504"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
transform="matrix(-0.715722,0.000000,0.000000,0.746242,229.1839,1.705700)"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 1 136.54398,134.82051 A 2.8240740 2.6828704 0 1 1 142.19213 134.82051 z" />
|
||||||
|
<path
|
||||||
|
id="path2505"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
transform="matrix(-0.522858,0.000000,0.000000,0.541812,158.3577,28.56880)"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 1 136.54398,134.82051 A 2.8240740 2.6828704 0 1 1 142.19213 134.82051 z" />
|
||||||
|
<path
|
||||||
|
id="path2989"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.8750064;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 71.508810,156.79396 C 70.535380,159.41974 70.893460,161.38021 71.727220,162.96212" />
|
||||||
|
<path
|
||||||
|
id="path2488"
|
||||||
|
style="fill:url(#linearGradient2613);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 95.614750,91.677620 C 97.381080,96.716160 97.004050,102.46006 92.865680,106.24755 C 87.949940,112.22229 85.035430,119.46072 81.351730,126.19477 C 79.653690,130.60467 74.994540,135.33400 69.912450,133.51633 C 65.478640,129.63513 59.624430,134.59315 59.756520,139.63278 C 58.892900,146.28305 63.348830,152.09729 68.372330,155.89009 C 73.223740,160.05824 78.793010,163.55709 85.126390,164.89029" />
|
||||||
|
<path
|
||||||
|
id="path2487"
|
||||||
|
style="fill:url(#linearGradient2609);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 122.12269,144.27495 C 126.10935,135.32626 117.64121,126.51395 108.56942,127.73028 C 100.73698,128.43993 96.140750,135.86093 89.221890,138.77056 C 86.542180,140.40002 83.856660,142.07991 80.890160,143.14533" />
|
||||||
|
<path
|
||||||
|
id="path2528"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.8750064;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 103.24779,154.29400 C 103.28371,161.29470 101.09670,166.40902 96.466720,169.52450 C 92.317410,172.31655 86.592910,172.65547 81.196140,169.42764" />
|
||||||
|
<path
|
||||||
|
id="path2530"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 45.313460,127.67686 C 59.841910,114.99883 74.671950,123.82564 82.189400,95.802460" />
|
||||||
|
<path
|
||||||
|
id="path2690"
|
||||||
|
style="fill:url(#radialGradient2682);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 204.81752,116.72114 C 216.32678,127.26171 212.44467,146.61619 200.97882,155.60046 C 192.24506,164.81793 179.71879,169.90365 167.03137,169.44991 C 161.14319,169.88291 150.60621,168.03947 147.83743,173.31893 C 160.61686,179.45040 174.63926,185.93022 189.22596,184.12736 C 207.19189,180.58458 226.24914,173.42201 237.22844,157.95689 C 246.30158,143.42630 246.32679,124.41390 240.32911,108.73831 C 234.18763,95.622730 222.96591,85.261190 209.67299,79.636570 C 197.98888,74.001690 187.07624,66.664440 178.75380,56.585650 C 172.06746,49.149370 164.92391,40.961050 154.41797,39.435420 C 143.30274,36.875430 131.47447,40.487870 123.15806,48.127030 C 122.84591,48.341200 121.59663,49.196450 121.28415,49.409900" />
|
||||||
|
<rect
|
||||||
|
id="rect2663"
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
y="56.624146"
|
||||||
|
x="89.945984"
|
||||||
|
height="21.654737"
|
||||||
|
width="66.734901" />
|
||||||
|
<path
|
||||||
|
id="path2681"
|
||||||
|
style="fill:url(#radialGradient2705);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 204.81752,116.72114 C 216.32678,127.26171 212.44467,146.61619 200.97882,155.60046 C 192.24506,164.81793 179.71879,169.90365 167.03137,169.44991 C 161.14319,169.88291 150.60621,168.03947 147.83743,173.31893 C 160.61686,179.45040 174.63926,185.93022 189.22596,184.12736 C 207.19189,180.58458 226.24914,173.42201 237.22844,157.95689 C 246.30158,143.42630 246.32679,124.41390 240.32911,108.73831 C 234.18763,95.622730 222.96591,85.261190 209.67299,79.636570 C 197.98888,74.001690 187.07624,66.664440 178.75380,56.585650 C 172.06746,49.149370 164.92391,40.961050 154.41797,39.435420 C 143.30274,36.875430 131.47447,40.487870 123.15806,48.127030 C 122.84591,48.341200 121.59663,49.196450 121.28415,49.409900" />
|
||||||
|
<path
|
||||||
|
id="path2732"
|
||||||
|
style="fill:#000000;fill-opacity:0.18431373;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.49803922"
|
||||||
|
d="M 205.81207,152.22714 C 210.13648,153.32568 205.20085,150.73062 212.99930,155.99737 C 218.78368,159.70709 221.67241,158.08496 218.45112,151.74145 C 210.56935,139.62791 201.60449,150.85798 205.81207,152.22714 z " />
|
||||||
|
<path
|
||||||
|
id="path2760"
|
||||||
|
style="fill:#000000;fill-opacity:0.18431373;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 176.57763,132.89792 C 182.99041,140.79813 176.99461,133.00644 177.95159,142.21069 C 163.47725,131.92199 156.98441,114.07606 157.42452,100.09522" />
|
||||||
|
<path
|
||||||
|
id="path2770"
|
||||||
|
style="fill:url(#radialGradient2771);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 204.81752,116.72114 C 216.32678,127.26171 212.44467,146.61619 200.97882,155.60046 C 192.24506,164.81793 179.71879,169.90365 167.03137,169.44991 C 161.14319,169.88291 150.60621,168.03947 147.83743,173.31893 C 160.61686,179.45040 174.63926,185.93022 189.22596,184.12736 C 207.19189,180.58458 226.24914,173.42201 237.22844,157.95689 C 246.30158,143.42630 246.32679,124.41390 240.32911,108.73831 C 234.18763,95.622730 222.96591,85.261190 209.67299,79.636570 C 197.98888,74.001690 187.07624,66.664440 178.75380,56.585650 C 172.06746,49.149370 164.92391,40.961050 154.41797,39.435420 C 143.30274,36.875430 131.47447,40.487870 123.15806,48.127030 C 122.84591,48.341200 121.59663,49.196450 121.28415,49.409900" />
|
||||||
|
<path
|
||||||
|
id="path2489"
|
||||||
|
style="fill:url(#linearGradient2618);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 145.56310,71.415200 C 164.16785,67.747970 184.23229,76.559720 194.69769,92.253050 C 201.11048,100.15326 202.83624,110.50001 203.91807,120.30126 C 204.55378,126.06093 207.50174,131.03500 209.47507,136.21816 C 211.22522,140.81506 217.79695,143.34277 216.91530,148.99122 C 212.05312,151.18508 208.37050,145.93312 204.25715,144.32983 C 193.64255,140.19249 181.85609,137.88071 172.64816,130.73343 C 161.26748,121.77053 156.98441,106.57620 157.42452,92.595360" />
|
||||||
|
<path
|
||||||
|
id="path2674"
|
||||||
|
style="fill:url(#radialGradient2680);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 120.98378,51.036120 C 107.33723,43.588550 90.845650,49.290460 78.982530,57.583220 C 68.532260,64.527270 59.832200,76.149470 46.377558,76.928600 C 36.882736,76.604500 30.093423,66.737170 29.866718,58.026350 C 28.389800,45.349570 37.319848,30.968220 49.635821,27.211290 C 60.910890,23.771890 73.221540,23.380100 84.619310,22.203320 C 93.382000,21.298610 75.918150,14.152750 70.980940,13.488770 C 58.043230,11.748850 46.540682,13.993090 34.331831,20.009570 C 20.789946,26.682980 16.694062,32.763990 11.999323,45.790730 C 7.6556120,57.843470 7.5774300,72.924550 12.999388,84.899230 C 19.028182,97.866820 32.617768,106.97791 47.062596,106.55102 C 48.266226,106.56022 52.122014,106.51370 53.321200,106.41008" />
|
||||||
|
<path
|
||||||
|
id="path2683"
|
||||||
|
style="fill:url(#radialGradient2684);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 120.98378,51.036120 C 107.33723,43.588550 90.845650,49.290460 78.982530,57.583220 C 68.532260,64.527270 59.832200,76.149470 46.377558,76.928600 C 36.882736,76.604500 30.093423,66.737170 29.866718,58.026350 C 28.389800,45.349570 37.319848,30.968220 49.635821,27.211290 C 60.910890,23.771890 73.221540,23.380100 84.619310,22.203320 C 93.382000,21.298610 75.918150,14.152750 70.980940,13.488770 C 58.043230,11.748850 46.540682,13.993090 34.331831,20.009570 C 20.789946,26.682980 16.694062,32.763990 11.999323,45.790730 C 7.6556120,57.843470 7.5774300,72.924550 12.999388,84.899230 C 19.028182,97.866820 32.617768,106.97791 47.062596,106.55102 C 48.266226,106.56022 52.122014,106.51370 53.321200,106.41008" />
|
||||||
|
<path
|
||||||
|
id="path2685"
|
||||||
|
style="fill:url(#linearGradient2686);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 29.866718,55.526400 C 28.389800,42.849610 37.319848,28.468260 49.635821,24.711330 C 60.910890,21.271940 73.221540,20.880150 84.619310,19.703370 C 93.382000,18.798660 75.918150,11.652800 70.980940,10.988810 C 58.043230,9.2488900 46.540682,11.493130 34.331831,17.509620 C 20.789946,24.183020 16.694062,30.264040 11.999323,43.290780 C 7.6556120,55.343520 7.5774300,70.424600 12.999388,82.399270" />
|
||||||
|
<path
|
||||||
|
id="path2720"
|
||||||
|
style="fill:url(#linearGradient2721);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 145.56310,71.415200 C 164.16785,67.747970 184.23229,76.559720 194.69769,92.253050 C 201.11048,100.15326 202.83624,110.50001 203.91807,120.30126 C 204.55378,126.06093 207.50174,131.03500 209.47507,136.21816 C 211.22522,140.81506 217.79695,143.34277 216.91530,148.99122 C 212.05312,151.18508 208.37050,145.93312 204.25715,144.32983 C 193.64255,140.19249 181.85609,137.88071 172.64816,130.73343 C 161.26748,121.77053 156.98441,106.57620 157.42452,92.595360" />
|
||||||
|
<path
|
||||||
|
id="path2772"
|
||||||
|
style="fill:url(#linearGradient2773);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.5000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 29.866718,55.526400 C 28.389800,42.849610 37.319848,28.468260 49.635821,24.711330 C 60.910890,21.271940 73.221540,20.880150 84.619310,19.703370 C 93.382000,18.798660 75.918150,11.652800 70.980940,10.988810 C 58.043230,9.2488900 46.540682,11.493130 34.331831,17.509620 C 20.789946,24.183020 16.694062,30.264040 11.999323,43.290780 C 7.6556120,55.343520 7.5774300,70.424600 12.999388,82.399270" />
|
||||||
|
<path
|
||||||
|
id="path2687"
|
||||||
|
style="fill:url(#radialGradient2688);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 120.98378,48.536170 C 107.33723,41.088600 90.845650,46.790510 78.982530,55.083270 C 68.532260,62.027310 59.832200,73.649520 46.377558,74.428640 C 36.882736,74.104550 30.093423,64.237210 29.866718,55.526400 C 28.389800,42.849610 37.319848,28.468260 49.635821,24.711330 C 60.910890,21.271940 73.221540,20.880150 84.619310,19.703370 C 93.382000,18.798660 75.918150,11.652800 70.980940,10.988810 C 58.043230,9.2488900 46.540682,11.493130 34.331831,17.509620 C 20.789946,24.183020 16.694062,30.264040 11.999323,43.290780 C 7.6556120,55.343520 7.5774300,70.424600 12.999388,82.399270 C 19.028182,95.366870 32.617768,104.47796 47.062596,104.05107 C 48.266226,104.06027 52.122014,104.01375 53.321200,103.91013" />
|
||||||
|
<rect
|
||||||
|
id="rect3185"
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
y="56.624146"
|
||||||
|
x="89.945984"
|
||||||
|
height="21.654737"
|
||||||
|
width="66.734901" />
|
||||||
|
<rect
|
||||||
|
id="rect3186"
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
y="56.624146"
|
||||||
|
x="89.945984"
|
||||||
|
height="21.654737"
|
||||||
|
width="66.734901" />
|
||||||
|
<rect
|
||||||
|
id="rect3187"
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
y="56.624146"
|
||||||
|
x="89.945984"
|
||||||
|
height="21.654737"
|
||||||
|
width="66.734901" />
|
||||||
|
<rect
|
||||||
|
id="rect3188"
|
||||||
|
style="fill:url(#radialGradient2664);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
y="59.124084"
|
||||||
|
x="89.945984"
|
||||||
|
height="21.654737"
|
||||||
|
width="66.734901" />
|
||||||
|
<path
|
||||||
|
id="path3190"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient3193);stroke-width:0.93750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="matrix(-1.408036,0.000000,0.000000,1.407974,327.6776,-86.21470)"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 1 136.54398,134.82051 A 2.8240740 2.6828704 0 1 1 142.19213 134.82051 z" />
|
||||||
|
<path
|
||||||
|
id="path3192"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient3191);stroke-width:0.72265625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="matrix(-1.239071,0.000000,0.000000,1.239017,259.5702,-63.87770)"
|
||||||
|
d="M 142.19213 134.82051 A 2.8240740 2.6828704 0 1 1 136.54398,134.82051 A 2.8240740 2.6828704 0 1 1 142.19213 134.82051 z" />
|
||||||
|
<path
|
||||||
|
id="path2499"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000083;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 141.97873,102.21284 C 137.57932,99.251480 134.72223,98.389550 129.26999,98.225440 C 127.37124,98.324410 124.98294,97.811880 123.53477,99.373010" />
|
||||||
|
<path
|
||||||
|
id="path2500"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.8750064;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 93.065670,100.78501 C 89.863190,98.911180 87.114000,98.440230 83.470450,98.826220 C 82.385780,99.666430 82.767070,98.725570 81.737420,99.655410" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 39 KiB |
|
@ -0,0 +1,11 @@
|
||||||
|
iconsdir = $(pkgdatadir)/pixmaps/ice-userlist
|
||||||
|
icons_DATA = inhabitant.svg \
|
||||||
|
programmer.svg \
|
||||||
|
wizard.svg \
|
||||||
|
avail+idle.svg \
|
||||||
|
busy.svg \
|
||||||
|
busy+idle.svg \
|
||||||
|
away.svg \
|
||||||
|
away+idle.svg
|
||||||
|
|
||||||
|
EXTRA_DIST = $(icons_DATA)
|
|
@ -0,0 +1,186 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 3.7499495,0.69047613 C 2.7564195,0.70692713 1.9539395,1.5148171 1.9374495,2.5057001 L 1.8749495,2.5057001 L 1.8749495,12.520733 L 1.9374495,12.520733 C 1.9372795,12.531081 1.9374495,12.541642 1.9374495,12.552031 C 1.9374495,13.557377 2.7458095,14.382204 3.7499495,14.398553 C 3.7601495,14.398718 3.7709595,14.398553 3.7811995,14.398553 L 17.499950,14.398553 L 17.499950,14.304661 C 18.478900,14.288451 19.242330,13.491474 19.281200,12.520733 L 19.374950,12.520733 L 19.374950,2.5057001 L 19.312450,2.5057001 C 19.295950,1.5148141 18.493470,0.70692713 17.499950,0.69047613 L 17.499950,0.62788213 L 3.7499495,0.69047613 z "
|
||||||
|
style="fill:#e7e7e7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1582" />
|
||||||
|
<path
|
||||||
|
d="M 4.9081495,9.4541103 C 4.9081495,9.0620203 4.9081495,8.6699303 4.9081495,8.2778403 C 5.8332495,7.2249683 6.7382695,6.1541593 7.6813095,5.1172891 C 8.0169095,4.8586881 7.4112895,5.0277891 7.2366095,4.9892221 C 6.5302895,4.9951521 5.8239495,4.9971101 5.1176295,5.0014731 C 5.1176295,4.5843181 5.1176295,4.1671631 5.1176295,3.7500081 C 6.6895695,3.7500081 8.2615095,3.7500081 9.8334495,3.7500081 C 9.8334495,4.1062911 9.8334495,4.4625731 9.8334495,4.8188561 C 9.0552495,5.7093271 8.2899695,6.6113433 7.5034595,7.4943773 C 7.2972095,7.7179343 7.0909595,7.9414913 6.8847195,8.1650473 C 7.8341295,8.0994263 8.7862995,8.1376173 9.7371495,8.1274493 C 9.8215195,8.1551413 10.029060,8.0596733 9.9999495,8.2008523 C 9.9999495,8.6186043 9.9999495,9.0363573 9.9999495,9.4541103 C 8.3026795,9.4541103 6.6054195,9.4541103 4.9081495,9.4541103 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text1516" />
|
||||||
|
<path
|
||||||
|
d="M 11.158150,10.704110 C 11.158150,10.312020 11.158150,9.9199303 11.158150,9.5278403 C 12.083250,8.4749683 12.988270,7.4041593 13.931310,6.3672893 C 14.266910,6.1086881 13.661290,6.2777893 13.486610,6.2392223 C 12.780290,6.2451523 12.073950,6.2471103 11.367630,6.2514733 C 11.367630,5.8343181 11.367630,5.4171631 11.367630,5.0000081 C 12.939570,5.0000081 14.511510,5.0000081 16.083450,5.0000081 C 16.083450,5.3562911 16.083450,5.7125731 16.083450,6.0688561 C 15.305250,6.9593273 14.539970,7.8613433 13.753460,8.7443773 C 13.547210,8.9679343 13.340960,9.1914913 13.134720,9.4150473 C 14.084130,9.3494263 15.036300,9.3876173 15.987150,9.3774493 C 16.071520,9.4051413 16.279060,9.3096733 16.249950,9.4508523 C 16.249950,9.8686043 16.249950,10.286357 16.249950,10.704110 C 14.552680,10.704110 12.855420,10.704110 11.158150,10.704110 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text1519" />
|
||||||
|
<path
|
||||||
|
d="M 4.2186995,13.158392 L 16.249950,13.158392 C 18.102860,13.220066 18.045960,12.334051 18.062450,11.343168 L 18.124950,3.0468851"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1635" />
|
||||||
|
<path
|
||||||
|
d="M 7.0812795,13.750031 C 7.1032495,14.791984 2.9365195,13.841465 2.9561295,13.593936 C 2.9757395,13.346408 3.0378995,13.102543 3.1366995,12.875715 C 3.3343095,12.422061 3.6784995,12.036557 4.1221295,11.826198 C 4.9949595,11.370192 6.1499895,11.679048 6.7002495,12.514711 C 6.9476195,12.872340 7.0825695,13.310386 7.0812795,13.750031 z "
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.2805939;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1616" />
|
||||||
|
<path
|
||||||
|
d="M 228.70486 67.715950 A 2.5411651 2.5411651 0 1 0 223.62253,67.715950 A 2.5411651 2.5411651 0 1 0 228.70486 67.715950 z"
|
||||||
|
transform="matrix(0.545196,0.000000,0.000000,0.545198,-121.4181,-18.80404)"
|
||||||
|
style="fill:#e7e7e7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.8341994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1615" />
|
||||||
|
<path
|
||||||
|
d="M 228.70486 67.715950 A 2.5411651 2.5411651 0 1 0 223.62253,67.715950 A 2.5411651 2.5411651 0 1 0 228.70486 67.715950 z"
|
||||||
|
transform="matrix(0.741589,0.000000,0.000000,0.743692,-162.7301,-36.62463)"
|
||||||
|
style="fill:#e7e7e7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.6831849;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1617" />
|
||||||
|
<path
|
||||||
|
d="M 17.031200,1.9376041 L 4.9999495,1.9376041 C 3.1470395,1.8759301 3.2039395,2.7619451 3.1874495,3.7528281 L 3.1249495,10.720986"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1620" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 9.7 KiB |
|
@ -0,0 +1,314 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient3124"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.81666684"
|
||||||
|
cy="0.86111093"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.82222235"
|
||||||
|
fy="0.85555542"
|
||||||
|
id="radialGradient2957"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.98351645"
|
||||||
|
y1="0.98333335"
|
||||||
|
x2="0.23076923"
|
||||||
|
y2="0.17777778"
|
||||||
|
id="linearGradient2915"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient2952"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2946" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34615386"
|
||||||
|
y1="0.27222222"
|
||||||
|
x2="0.98901099"
|
||||||
|
y2="0.99444443"
|
||||||
|
id="linearGradient2913"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.870990,0.000000,0.000000,0.874807,-179.5880,-31.53432)"
|
||||||
|
style="stroke-linecap:round;stroke-linejoin:round;"
|
||||||
|
id="g842">
|
||||||
|
<path
|
||||||
|
d="M 124.36267 57.778187 A 7.7183714 7.7684908 0 1 0 108.92593,57.778187 A 7.7183714 7.7684908 0 1 0 124.36267 57.778187 z"
|
||||||
|
transform="matrix(1.198851,0.000000,0.000000,1.191107,79.31174,-20.62342)"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path824" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.301979,0.000000,0.000000,1.301288,67.79584,-28.07474)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.5865387;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path825" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2913);stroke-width:0.54178977;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path826" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.25333717;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path827" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.191763,0.000000,0.000000,1.184580,80.60843,-21.23427)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2915);stroke-width:0.60939527;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path828" />
|
||||||
|
<path
|
||||||
|
d="M 123.79466 57.694656 A 5.7135997 5.6801867 0 1 0 112.36746,57.694656 A 5.7135997 5.6801867 0 1 0 123.79466 57.694656 z"
|
||||||
|
transform="matrix(1.211269,0.000000,0.000000,1.218512,76.12298,-22.10502)"
|
||||||
|
style="fill:#ececf3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path829" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2957);stroke-width:0.25333717;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path830" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.179335,0.000000,0.000000,1.179308,82.05316,-20.92520)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient3124);stroke-width:0.21919590;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path831" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-184.82507"
|
||||||
|
y="115.64051"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect832" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,116.1740,1.567967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path833" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,127.4240,1.567967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path834" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,121.7990,7.192967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path835" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,121.7990,-4.057033)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path836" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-184.84271"
|
||||||
|
y="112.10372"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect837" />
|
||||||
|
<rect
|
||||||
|
width="1.0204378"
|
||||||
|
height="4.0817513"
|
||||||
|
x="112.95801"
|
||||||
|
y="-188.59544"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect838" />
|
||||||
|
<rect
|
||||||
|
width="1.0204381"
|
||||||
|
height="4.0817523"
|
||||||
|
x="112.97358"
|
||||||
|
y="-187.03423"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect839" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(0.970462,0.000000,0.000000,0.970463,106.2717,-8.747276)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.64402282;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path840" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(-1.179335,0.000000,0.000000,-1.179308,356.2486,117.3184)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.21919590;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path841" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
d="M 8.3354651,4.4211148 C 8.5569944,5.1059582 8.7834603,5.7956727 8.8937870,6.5088281 C 8.7560403,5.3737095 8.8687557,4.2233891 9.0197197,3.0952896 C 8.0225194,4.1700147 7.0944412,5.3063488 6.1271889,6.4077896 C 6.1782268,6.7788595 6.0238789,7.3562929 6.2063733,7.5952896 C 7.8698833,7.5952896 9.5333834,7.5952896 11.196893,7.5952896 C 11.135146,7.1775163 11.322378,6.5072977 11.099973,6.2524280 C 10.095577,6.2599689 9.0899267,6.2174400 8.0866452,6.2827896 C 9.0152310,5.2944373 9.9301018,4.2929446 10.821454,3.2704959 C 10.447219,3.3424473 10.102723,3.5931982 9.7475078,3.7522748 C 9.2825033,3.9867014 8.8198775,4.2289247 8.3354651,4.4211148 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ff0000;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.4940922;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text818" />
|
||||||
|
<path
|
||||||
|
d="M -1.7763568e-15,6.3306406 C -1.7763568e-15,5.9385506 -1.7763568e-15,5.5464606 -1.7763568e-15,5.1543716 C 0.96806847,4.0519846 1.9049449,2.9211866 2.9027424,1.8457776 C 2.0052591,1.8832936 1.1065616,1.8673056 0.20849113,1.8780036 C 0.20849113,1.4608496 0.20849113,1.0436946 0.20849113,0.62653957 C 1.7730107,0.62653957 3.3375302,0.62653957 4.9020497,0.62653957 C 4.9020497,0.98282157 4.9020497,1.3391046 4.9020497,1.6953866 C 3.9254218,2.8122656 2.9819168,3.9589156 1.9672394,5.0415786 C 2.9993143,4.9741756 4.0342457,5.0152336 5.0677637,5.0039806 C 5.0677637,5.4462006 5.0677637,5.8884206 5.0677637,6.3306406 C 3.3785058,6.3306406 1.6892579,6.3306406 -1.7763568e-15,6.3306406 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text821" />
|
||||||
|
<path
|
||||||
|
d="M 6.2204963,7.5806406 C 6.2204963,7.1885506 6.2204963,6.7964606 6.2204963,6.4043716 C 7.1885648,5.3019846 8.1254412,4.1711866 9.1232387,3.0957776 C 8.2257554,3.1332936 7.3270579,3.1173056 6.4289875,3.1280036 C 6.4289875,2.7108496 6.4289875,2.2936946 6.4289875,1.8765396 C 7.9935070,1.8765396 9.5580265,1.8765396 11.122546,1.8765396 C 11.122546,2.2328216 11.122546,2.5891046 11.122546,2.9453866 C 10.145918,4.0622656 9.2024132,5.2089156 8.1877358,6.2915786 C 9.2198107,6.2241756 10.254742,6.2652336 11.288260,6.2539806 C 11.288260,6.6962006 11.288260,7.1384206 11.288260,7.5806406 C 9.5990022,7.5806406 7.9097542,7.5806406 6.2204963,7.5806406 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text870" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,301 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient3124"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.81666684"
|
||||||
|
cy="0.86111093"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.82222235"
|
||||||
|
fy="0.85555542"
|
||||||
|
id="radialGradient2957"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.98351645"
|
||||||
|
y1="0.98333335"
|
||||||
|
x2="0.23076923"
|
||||||
|
y2="0.17777778"
|
||||||
|
id="linearGradient2915"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient2952"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2946" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34615386"
|
||||||
|
y1="0.27222222"
|
||||||
|
x2="0.98901099"
|
||||||
|
y2="0.99444443"
|
||||||
|
id="linearGradient2913"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-100.0014,-48.29105)"
|
||||||
|
id="g983">
|
||||||
|
<path
|
||||||
|
d="M 124.36267 57.778187 A 7.7183714 7.7684908 0 1 0 108.92593,57.778187 A 7.7183714 7.7684908 0 1 0 124.36267 57.778187 z"
|
||||||
|
transform="matrix(1.198851,0.000000,0.000000,1.191107,-29.83768,-10.52891)"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2938" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.301979,0.000000,0.000000,1.301288,-41.35358,-17.98022)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.5865387;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1664" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2913);stroke-width:0.54178977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2911" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.25333717;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2950" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.191763,0.000000,0.000000,1.184580,-28.54099,-11.13975)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2915);stroke-width:0.60939527;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2914" />
|
||||||
|
<path
|
||||||
|
d="M 123.79466 57.694656 A 5.7135997 5.6801867 0 1 0 112.36746,57.694656 A 5.7135997 5.6801867 0 1 0 123.79466 57.694656 z"
|
||||||
|
transform="matrix(1.211269,0.000000,0.000000,1.218512,-33.02644,-12.01050)"
|
||||||
|
style="fill:#ececf3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2924" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2957);stroke-width:0.25333717;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2953" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.179335,0.000000,0.000000,1.179308,-27.09626,-10.83068)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient3124);stroke-width:0.21919590;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3123" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-118.01519"
|
||||||
|
y="33.943893"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect2958" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,7.024595,11.66249)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2976" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,18.27460,11.66249)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3024" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,12.64960,17.28749)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3025" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,12.64960,6.037485)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3026" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-118.03284"
|
||||||
|
y="30.407104"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3028" />
|
||||||
|
<rect
|
||||||
|
width="1.0204378"
|
||||||
|
height="4.0817513"
|
||||||
|
x="31.261391"
|
||||||
|
y="-121.78556"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3029" />
|
||||||
|
<rect
|
||||||
|
width="1.0204381"
|
||||||
|
height="4.0817523"
|
||||||
|
x="31.276966"
|
||||||
|
y="-120.22436"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3118" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(0.970462,0.000000,0.000000,0.970463,-2.877711,1.347242)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.64402282;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3120" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(-1.179335,0.000000,0.000000,-1.179308,247.0991,127.4130)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.21919590;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3122" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,314 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient3124"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.81666684"
|
||||||
|
cy="0.86111093"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.82222235"
|
||||||
|
fy="0.85555542"
|
||||||
|
id="radialGradient2957"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.98351645"
|
||||||
|
y1="0.98333335"
|
||||||
|
x2="0.23076923"
|
||||||
|
y2="0.17777778"
|
||||||
|
id="linearGradient2915"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient2952"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2946" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34615386"
|
||||||
|
y1="0.27222222"
|
||||||
|
x2="0.98901099"
|
||||||
|
y2="0.99444443"
|
||||||
|
id="linearGradient2913"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.870990,0.000000,0.000000,0.874807,-179.5880,-31.53432)"
|
||||||
|
style="stroke-linecap:round;stroke-linejoin:round;"
|
||||||
|
id="g842">
|
||||||
|
<path
|
||||||
|
d="M 124.36267 57.778187 A 7.7183714 7.7684908 0 1 0 108.92593,57.778187 A 7.7183714 7.7684908 0 1 0 124.36267 57.778187 z"
|
||||||
|
transform="matrix(1.198851,0.000000,0.000000,1.191107,79.31174,-20.62342)"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path824" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.301979,0.000000,0.000000,1.301288,67.79584,-28.07474)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.5865387;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path825" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2913);stroke-width:0.54178977;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path826" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.25333717;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path827" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.191763,0.000000,0.000000,1.184580,80.60843,-21.23427)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2915);stroke-width:0.60939527;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path828" />
|
||||||
|
<path
|
||||||
|
d="M 123.79466 57.694656 A 5.7135997 5.6801867 0 1 0 112.36746,57.694656 A 5.7135997 5.6801867 0 1 0 123.79466 57.694656 z"
|
||||||
|
transform="matrix(1.211269,0.000000,0.000000,1.218512,76.12298,-22.10502)"
|
||||||
|
style="fill:#ececf3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path829" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2957);stroke-width:0.25333717;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path830" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.179335,0.000000,0.000000,1.179308,82.05316,-20.92520)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient3124);stroke-width:0.21919590;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path831" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-184.82507"
|
||||||
|
y="115.64051"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect832" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,116.1740,1.567967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path833" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,127.4240,1.567967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path834" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,121.7990,7.192967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path835" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,121.7990,-4.057033)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path836" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-184.84271"
|
||||||
|
y="112.10372"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect837" />
|
||||||
|
<rect
|
||||||
|
width="1.0204378"
|
||||||
|
height="4.0817513"
|
||||||
|
x="112.95801"
|
||||||
|
y="-188.59544"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect838" />
|
||||||
|
<rect
|
||||||
|
width="1.0204381"
|
||||||
|
height="4.0817523"
|
||||||
|
x="112.97358"
|
||||||
|
y="-187.03423"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect839" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(0.970462,0.000000,0.000000,0.970463,106.2717,-8.747276)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.64402282;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path840" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(-1.179335,0.000000,0.000000,-1.179308,356.2486,117.3184)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.21919590;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path841" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
d="M 8.3354651,4.4211148 C 8.5569944,5.1059582 8.7834603,5.7956727 8.8937870,6.5088281 C 8.7560403,5.3737095 8.8687557,4.2233891 9.0197197,3.0952896 C 8.0225194,4.1700147 7.0944412,5.3063488 6.1271889,6.4077896 C 6.1782268,6.7788595 6.0238789,7.3562929 6.2063733,7.5952896 C 7.8698833,7.5952896 9.5333834,7.5952896 11.196893,7.5952896 C 11.135146,7.1775163 11.322378,6.5072977 11.099973,6.2524280 C 10.095577,6.2599689 9.0899267,6.2174400 8.0866452,6.2827896 C 9.0152310,5.2944373 9.9301018,4.2929446 10.821454,3.2704959 C 10.447219,3.3424473 10.102723,3.5931982 9.7475078,3.7522748 C 9.2825033,3.9867014 8.8198775,4.2289247 8.3354651,4.4211148 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ff0000;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.4940922;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text818" />
|
||||||
|
<path
|
||||||
|
d="M -1.7763568e-15,6.3306406 C -1.7763568e-15,5.9385506 -1.7763568e-15,5.5464606 -1.7763568e-15,5.1543716 C 0.96806847,4.0519846 1.9049449,2.9211866 2.9027424,1.8457776 C 2.0052591,1.8832936 1.1065616,1.8673056 0.20849113,1.8780036 C 0.20849113,1.4608496 0.20849113,1.0436946 0.20849113,0.62653957 C 1.7730107,0.62653957 3.3375302,0.62653957 4.9020497,0.62653957 C 4.9020497,0.98282157 4.9020497,1.3391046 4.9020497,1.6953866 C 3.9254218,2.8122656 2.9819168,3.9589156 1.9672394,5.0415786 C 2.9993143,4.9741756 4.0342457,5.0152336 5.0677637,5.0039806 C 5.0677637,5.4462006 5.0677637,5.8884206 5.0677637,6.3306406 C 3.3785058,6.3306406 1.6892579,6.3306406 -1.7763568e-15,6.3306406 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text821" />
|
||||||
|
<path
|
||||||
|
d="M 6.2204963,7.5806406 C 6.2204963,7.1885506 6.2204963,6.7964606 6.2204963,6.4043716 C 7.1885648,5.3019846 8.1254412,4.1711866 9.1232387,3.0957776 C 8.2257554,3.1332936 7.3270579,3.1173056 6.4289875,3.1280036 C 6.4289875,2.7108496 6.4289875,2.2936946 6.4289875,1.8765396 C 7.9935070,1.8765396 9.5580265,1.8765396 11.122546,1.8765396 C 11.122546,2.2328216 11.122546,2.5891046 11.122546,2.9453866 C 10.145918,4.0622656 9.2024132,5.2089156 8.1877358,6.2915786 C 9.2198107,6.2241756 10.254742,6.2652336 11.288260,6.2539806 C 11.288260,6.6962006 11.288260,7.1384206 11.288260,7.5806406 C 9.5990022,7.5806406 7.9097542,7.5806406 6.2204963,7.5806406 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text870" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,301 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient3124"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.81666684"
|
||||||
|
cy="0.86111093"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.82222235"
|
||||||
|
fy="0.85555542"
|
||||||
|
id="radialGradient2957"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.98351645"
|
||||||
|
y1="0.98333335"
|
||||||
|
x2="0.23076923"
|
||||||
|
y2="0.17777778"
|
||||||
|
id="linearGradient2915"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient2952"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2946" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34615386"
|
||||||
|
y1="0.27222222"
|
||||||
|
x2="0.98901099"
|
||||||
|
y2="0.99444443"
|
||||||
|
id="linearGradient2913"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-100.0014,-48.29105)"
|
||||||
|
id="g983">
|
||||||
|
<path
|
||||||
|
d="M 124.36267 57.778187 A 7.7183714 7.7684908 0 1 0 108.92593,57.778187 A 7.7183714 7.7684908 0 1 0 124.36267 57.778187 z"
|
||||||
|
transform="matrix(1.198851,0.000000,0.000000,1.191107,-29.83768,-10.52891)"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2938" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.301979,0.000000,0.000000,1.301288,-41.35358,-17.98022)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.5865387;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1664" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2913);stroke-width:0.54178977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2911" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.25333717;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2950" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.191763,0.000000,0.000000,1.184580,-28.54099,-11.13975)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2915);stroke-width:0.60939527;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2914" />
|
||||||
|
<path
|
||||||
|
d="M 123.79466 57.694656 A 5.7135997 5.6801867 0 1 0 112.36746,57.694656 A 5.7135997 5.6801867 0 1 0 123.79466 57.694656 z"
|
||||||
|
transform="matrix(1.211269,0.000000,0.000000,1.218512,-33.02644,-12.01050)"
|
||||||
|
style="fill:#ececf3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2924" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2957);stroke-width:0.25333717;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2953" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.179335,0.000000,0.000000,1.179308,-27.09626,-10.83068)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient3124);stroke-width:0.21919590;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3123" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-118.01519"
|
||||||
|
y="33.943893"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect2958" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,7.024595,11.66249)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2976" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,18.27460,11.66249)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3024" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,12.64960,17.28749)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3025" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,12.64960,6.037485)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3026" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-118.03284"
|
||||||
|
y="30.407104"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3028" />
|
||||||
|
<rect
|
||||||
|
width="1.0204378"
|
||||||
|
height="4.0817513"
|
||||||
|
x="31.261391"
|
||||||
|
y="-121.78556"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3029" />
|
||||||
|
<rect
|
||||||
|
width="1.0204381"
|
||||||
|
height="4.0817523"
|
||||||
|
x="31.276966"
|
||||||
|
y="-120.22436"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3118" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(0.970462,0.000000,0.000000,0.970463,-2.877711,1.347242)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.64402282;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3120" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(-1.179335,0.000000,0.000000,-1.179308,247.0991,127.4130)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.21919590;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3122" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,110 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 5.6024550,5.8992082 L 5.6024550,16.720614 L 17.799951,16.720614 L 17.799951,14.517686 C 18.642953,13.928521 19.324638,12.982768 19.324638,11.657742 C 19.324638,10.332716 18.642953,9.4256112 17.799951,8.8364462 L 17.799951,5.8992082 L 5.6024550,5.8992082 z "
|
||||||
|
style="fill:#44e704;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1329" />
|
||||||
|
<path
|
||||||
|
d="M 310.68503,54.236767 C 311.27106,54.831541 310.17241,55.320161 309.69647,55.210784 C 308.40672,54.914378 308.21130,53.258102 308.73699,52.259661 C 309.67734,50.473683 312.08630,50.281482 313.65069,51.314716 C 315.94650,52.831027 316.13664,56.079643 314.58110,58.190979 C 312.50780,61.005059 308.39379,61.191022 305.74226,59.106852 C 302.40559,56.484138 302.22487,51.493943 304.84093,48.305448 C 308.00932,44.443754 313.88125,44.268817 317.60490,47.418647 C 320.07424,49.507459 321.35017,52.753471 321.08983,55.963815"
|
||||||
|
transform="matrix(1.015408,0.000000,0.000000,1.046821,-306.9678,-45.92515)"
|
||||||
|
style="fill:#44e704;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.4399315;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1330" />
|
||||||
|
<path
|
||||||
|
d="M 19.391341,12.983581 C 17.009041,15.301132 20.519011,16.092121 17.782246,17.074763 L 8.8693068,17.168538"
|
||||||
|
style="fill:#44e704;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2282115;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1331" />
|
||||||
|
<path
|
||||||
|
d="M 7.6036177,10.640254 C 6.2693604,8.5099522 9.6443859,7.9109192 10.129759,8.4977562 M 4.1615614,14.971187 C 2.4580597,13.481965 1.4553061,12.047713 1.6437322,9.4915422 C 1.7722789,6.7292222 3.6541491,4.4305522 6.1081613,3.2933912 C 9.3879471,1.6983032 13.191789,2.7460062 15.602060,5.5145812"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.2449100;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1333" />
|
||||||
|
<path
|
||||||
|
d="M 14.521722,10.496187 C 15.061797,12.958370 14.510891,13.730650 13.378033,15.535256"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.2449100;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1334" />
|
||||||
|
<path
|
||||||
|
d="M 11.957612,10.334997 C 13.306281,12.911391 10.194846,17.157833 6.9057658,16.055205"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#1e5c1e;stroke-width:1.2449100;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1335" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,114 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="0.29298297"
|
||||||
|
y1="0.23977646"
|
||||||
|
x2="0.62951213"
|
||||||
|
y2="0.86258322"
|
||||||
|
id="linearGradient1252"
|
||||||
|
xlink:href="#linearGradient1243" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<Work
|
||||||
|
about=""
|
||||||
|
id="Work1119">
|
||||||
|
<format
|
||||||
|
id="format1120">image/svg+xml</format>
|
||||||
|
<type
|
||||||
|
id="type1122"
|
||||||
|
resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</Work>
|
||||||
|
</RDF>
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1034">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1035">
|
||||||
|
<dc:format
|
||||||
|
id="format1036">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1038"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(1.059916,-0.275504,0.284004,1.028195,-203.6913,-0.166886)"
|
||||||
|
style="fill:#769abe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;"
|
||||||
|
id="path1399" />
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(0.847932,-0.220404,0.227204,0.822555,-160.9527,1.625846)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1252);stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1400" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,383 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1351">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#44e704;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1352" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#1e5c1e;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1353" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1276">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1277" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1281" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1279" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1210">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1211" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffa619;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1212" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bb7200;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1213" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1206">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1207" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1208" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1209" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1115">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1116" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.062745102;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1117" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.18431373;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1118" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1119" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1100">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1101" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1102" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1103" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1104" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1048">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1049" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1050" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1051" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1052" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1042">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1043" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.12549020;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1044" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1045" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.74901962;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1046" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1035">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1036" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1037" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a44b3;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1038" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#111464;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1039" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1623">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1624" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1626" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bbbb00;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1625" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3172">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3173" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3174" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3152">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3153" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3154" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34868422"
|
||||||
|
y1="0.74342108"
|
||||||
|
x2="0.11184210"
|
||||||
|
y2="0.50000000"
|
||||||
|
id="linearGradient3149"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175"
|
||||||
|
spreadMethod="pad" />
|
||||||
|
<linearGradient
|
||||||
|
x1="-0.18888889"
|
||||||
|
y1="0.25000000"
|
||||||
|
x2="0.92222220"
|
||||||
|
y2="0.84210527"
|
||||||
|
id="linearGradient3164"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3165" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.29651532"
|
||||||
|
cy="0.44973168"
|
||||||
|
r="0.44808188"
|
||||||
|
fx="0.30226764"
|
||||||
|
fy="0.45367077"
|
||||||
|
id="radialGradient3179"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175" />
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata4">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF5">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work6">
|
||||||
|
<dc:format
|
||||||
|
id="format7">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type9"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.990854,0.000000,0.000000,0.990711,-126.3339,-47.97486)"
|
||||||
|
id="g1373">
|
||||||
|
<path
|
||||||
|
d="M 133.28125 64.998901 A 2.9296875 1.6210938 0 1 0 127.42188,64.998901 A 2.9296875 1.6210938 0 1 0 133.28125 64.998901 z"
|
||||||
|
transform="matrix(2.295720,1.768142,-0.610189,0.792257,-124.9777,-219.0142)"
|
||||||
|
style="fill:url(#radialGradient3179);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.36715820;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3144" />
|
||||||
|
<path
|
||||||
|
d="M 130.77344,59.440308 L 133.07812,58.463746 L 144.87500,48.737183 L 147.37500,51.237183 L 144.99219,49.909055 L 139.13281,62.819212 L 138.78125,65.299681 C 138.78125,65.338743 134.13281,64.518435 130.77344,59.440308 z "
|
||||||
|
style="fill:url(#linearGradient3149);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3147" />
|
||||||
|
<path
|
||||||
|
d="M 134.51247,56.782032 L 133.03487,58.012331 C 134.15310,60.486423 137.37121,62.433195 139.56918,62.958630 L 140.36116,61.077423 C 138.20884,60.533310 135.78372,59.153083 134.51247,56.782032 z "
|
||||||
|
style="fill:url(#linearGradient3164);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3163" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,243 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * saveclose_xpm[] = {
|
||||||
|
"24 24 216 2",
|
||||||
|
" c None",
|
||||||
|
". c #000000",
|
||||||
|
"+ c #C3D7F4",
|
||||||
|
"@ c #A9CDE5",
|
||||||
|
"# c #75757A",
|
||||||
|
"$ c #EFC5BB",
|
||||||
|
"% c #F1C8BE",
|
||||||
|
"& c #F0C6BC",
|
||||||
|
"* c #EEBCB2",
|
||||||
|
"= c #EEBEB5",
|
||||||
|
"- c #EEC1B8",
|
||||||
|
"; c #EDBFB6",
|
||||||
|
"> c #E9B7AD",
|
||||||
|
", c #755D58",
|
||||||
|
"' c #C49B93",
|
||||||
|
") c #E9B9B1",
|
||||||
|
"! c #E5BFBA",
|
||||||
|
"~ c #737277",
|
||||||
|
"{ c #BBD6E8",
|
||||||
|
"] c #8AAAC5",
|
||||||
|
"^ c #605F68",
|
||||||
|
"/ c #E08D7E",
|
||||||
|
"( c #E0826E",
|
||||||
|
"_ c #E0806E",
|
||||||
|
": c #DC7A68",
|
||||||
|
"< c #DC8171",
|
||||||
|
"[ c #DA7868",
|
||||||
|
"} c #D48173",
|
||||||
|
"| c #D47D6E",
|
||||||
|
"1 c #AD6055",
|
||||||
|
"2 c #C4675B",
|
||||||
|
"3 c #C36558",
|
||||||
|
"4 c #BAD5E9",
|
||||||
|
"5 c #88A7C3",
|
||||||
|
"6 c #686670",
|
||||||
|
"7 c #C8817B",
|
||||||
|
"8 c #CB7C74",
|
||||||
|
"9 c #CB7A73",
|
||||||
|
"0 c #CB7B73",
|
||||||
|
"a c #CC7C72",
|
||||||
|
"b c #CB7D73",
|
||||||
|
"c c #BF6B64",
|
||||||
|
"d c #CC7A70",
|
||||||
|
"e c #C16A62",
|
||||||
|
"f c #7A4A45",
|
||||||
|
"g c #6F403F",
|
||||||
|
"h c #B6D3E7",
|
||||||
|
"i c #87ABC1",
|
||||||
|
"j c #737373",
|
||||||
|
"k c #FFFFFF",
|
||||||
|
"l c #3A4C5A",
|
||||||
|
"m c #B9D3E7",
|
||||||
|
"n c #85A4BF",
|
||||||
|
"o c #999999",
|
||||||
|
"p c #6E869B",
|
||||||
|
"q c #4F697C",
|
||||||
|
"r c #B9D3E6",
|
||||||
|
"s c #84A3BF",
|
||||||
|
"t c #CECECE",
|
||||||
|
"u c #CDCDCD",
|
||||||
|
"v c #919191",
|
||||||
|
"w c #232323",
|
||||||
|
"x c #3C5263",
|
||||||
|
"y c #B7D2E7",
|
||||||
|
"z c #82A0BB",
|
||||||
|
"A c #636363",
|
||||||
|
"B c #D7D7D7",
|
||||||
|
"C c #4E4E4E",
|
||||||
|
"D c #B5CAE5",
|
||||||
|
"E c #7FA2B9",
|
||||||
|
"F c #5C5C5C",
|
||||||
|
"G c #AECCE5",
|
||||||
|
"H c #7DA0B6",
|
||||||
|
"I c #494949",
|
||||||
|
"J c #ACACAC",
|
||||||
|
"K c #C5C5C5",
|
||||||
|
"L c #515151",
|
||||||
|
"M c #B0D1E4",
|
||||||
|
"N c #83A1B6",
|
||||||
|
"O c #735B5B",
|
||||||
|
"P c #4E606E",
|
||||||
|
"Q c #AACEE3",
|
||||||
|
"R c #7B9BB2",
|
||||||
|
"S c #7A8E9A",
|
||||||
|
"T c #7A7A7A",
|
||||||
|
"U c #6B6F72",
|
||||||
|
"V c #6F6F6F",
|
||||||
|
"W c #696969",
|
||||||
|
"X c #6F777E",
|
||||||
|
"Y c #86A2B9",
|
||||||
|
"Z c #3A515D",
|
||||||
|
"` c #A9C9E2",
|
||||||
|
" . c #7494AF",
|
||||||
|
".. c #819EB6",
|
||||||
|
"+. c #83A0B8",
|
||||||
|
"@. c #829FB7",
|
||||||
|
"#. c #7F9DB6",
|
||||||
|
"$. c #7E9CB5",
|
||||||
|
"%. c #7998B2",
|
||||||
|
"&. c #85A1B8",
|
||||||
|
"*. c #87A3BA",
|
||||||
|
"=. c #8CA7BD",
|
||||||
|
"-. c #8AA5BB",
|
||||||
|
";. c #364A59",
|
||||||
|
">. c #ABC4E2",
|
||||||
|
",. c #7294AD",
|
||||||
|
"'. c #6F90AC",
|
||||||
|
"). c #7192AE",
|
||||||
|
"!. c #414A4E",
|
||||||
|
"~. c #424A51",
|
||||||
|
"{. c #525B63",
|
||||||
|
"]. c #626F79",
|
||||||
|
"^. c #5F6C76",
|
||||||
|
"/. c #5C6971",
|
||||||
|
"(. c #5A666F",
|
||||||
|
"_. c #58636B",
|
||||||
|
":. c #57636A",
|
||||||
|
"<. c #3B5360",
|
||||||
|
"[. c #39424B",
|
||||||
|
"}. c #7897B3",
|
||||||
|
"|. c #A4B9CB",
|
||||||
|
"1. c #364853",
|
||||||
|
"2. c #AAC9E2",
|
||||||
|
"3. c #7091AA",
|
||||||
|
"4. c #6F8FA7",
|
||||||
|
"5. c #4A5359",
|
||||||
|
"6. c #97938C",
|
||||||
|
"7. c #DFDDDA",
|
||||||
|
"8. c #E3E1DE",
|
||||||
|
"9. c #EBEAE8",
|
||||||
|
"0. c #EAE9E7",
|
||||||
|
"a. c #CFCEC9",
|
||||||
|
"b. c #C9C6C0",
|
||||||
|
"c. c #9B968E",
|
||||||
|
"d. c #566168",
|
||||||
|
"e. c #4B657A",
|
||||||
|
"f. c #54738C",
|
||||||
|
"g. c #AAC6DD",
|
||||||
|
"h. c #34464E",
|
||||||
|
"i. c #AAC9E1",
|
||||||
|
"j. c #6C8EA6",
|
||||||
|
"k. c #6C8CA4",
|
||||||
|
"l. c #40474D",
|
||||||
|
"m. c #DAD8D3",
|
||||||
|
"n. c #E7E6E2",
|
||||||
|
"o. c #67655E",
|
||||||
|
"p. c #524F47",
|
||||||
|
"q. c #D9D7D4",
|
||||||
|
"r. c #C7C5BF",
|
||||||
|
"s. c #C0BCB5",
|
||||||
|
"t. c #B8B3AB",
|
||||||
|
"u. c #434C54",
|
||||||
|
"v. c #4D697F",
|
||||||
|
"w. c #4F6F84",
|
||||||
|
"x. c #B3CADC",
|
||||||
|
"y. c #313E49",
|
||||||
|
"z. c #A8C8E1",
|
||||||
|
"A. c #6B8DA6",
|
||||||
|
"B. c #728FA4",
|
||||||
|
"C. c #E2E1DD",
|
||||||
|
"D. c #F0EFEC",
|
||||||
|
"E. c #CDCAC6",
|
||||||
|
"F. c #C2BFB9",
|
||||||
|
"G. c #CAC6C0",
|
||||||
|
"H. c #DCDAD7",
|
||||||
|
"I. c #4B555D",
|
||||||
|
"J. c #4E697F",
|
||||||
|
"K. c #BACCDC",
|
||||||
|
"L. c #A4C4DE",
|
||||||
|
"M. c #698BA3",
|
||||||
|
"N. c #708AA1",
|
||||||
|
"O. c #383E43",
|
||||||
|
"P. c #E0DEDA",
|
||||||
|
"Q. c #514E46",
|
||||||
|
"R. c #4F4C44",
|
||||||
|
"S. c #C7C4BE",
|
||||||
|
"T. c #CBC8C2",
|
||||||
|
"U. c #E1E0DC",
|
||||||
|
"V. c #E9E8E6",
|
||||||
|
"W. c #475158",
|
||||||
|
"X. c #4E6879",
|
||||||
|
"Y. c #4D6C80",
|
||||||
|
"Z. c #A3C3DB",
|
||||||
|
"`. c #383F43",
|
||||||
|
" + c #778999",
|
||||||
|
".+ c #6E899E",
|
||||||
|
"++ c #65859C",
|
||||||
|
"@+ c #33383C",
|
||||||
|
"#+ c #D7D4D0",
|
||||||
|
"$+ c #D6D4D0",
|
||||||
|
"%+ c #4E4A43",
|
||||||
|
"&+ c #4D4942",
|
||||||
|
"*+ c #D1CEC9",
|
||||||
|
"=+ c #E6E5E2",
|
||||||
|
"-+ c #EDECEA",
|
||||||
|
";+ c #454F55",
|
||||||
|
">+ c #486173",
|
||||||
|
",+ c #4D6678",
|
||||||
|
"'+ c #A1C1DA",
|
||||||
|
")+ c #373C40",
|
||||||
|
"!+ c #0C0D0F",
|
||||||
|
"~+ c #4E5E6A",
|
||||||
|
"{+ c #5B6E7C",
|
||||||
|
"]+ c #4F5B62",
|
||||||
|
"^+ c #A4A099",
|
||||||
|
"/+ c #CCC9C3",
|
||||||
|
"(+ c #D7D5D1",
|
||||||
|
"_+ c #E4E2E0",
|
||||||
|
":+ c #DDDBD7",
|
||||||
|
"<+ c #B8B5B0",
|
||||||
|
"[+ c #3E474D",
|
||||||
|
"}+ c #4A6176",
|
||||||
|
"|+ c #4A6070",
|
||||||
|
"1+ c #9BC3D8",
|
||||||
|
"2+ c #363C41",
|
||||||
|
"3+ c #28323E",
|
||||||
|
" ",
|
||||||
|
" . . . . . . . . . . . . . . . . . . . . ",
|
||||||
|
" . + @ # $ % & * = - ; > , . ' ) ! ~ . . . ",
|
||||||
|
" . { ] ^ / ( _ : < [ } | 1 . . 2 3 . . . . ",
|
||||||
|
" . 4 5 6 7 8 9 0 a b c d e f . . g . . . . ",
|
||||||
|
" . h i j k k k k k k k k k k . . . . . l . ",
|
||||||
|
" . m n j k k k k k k k k k k o . . . p q . ",
|
||||||
|
" . r s j t u u u u u u u u v . . w . . x . ",
|
||||||
|
" . y z A k k k k k k k k B . . . C . . . . ",
|
||||||
|
" . D E j k k k k k k k k F . . B B . . . . . ",
|
||||||
|
" . G H j t u u u u u u I . . J u K L . . . . ",
|
||||||
|
" . M N O k k k k k k C F . B k k k j P . . ",
|
||||||
|
" . Q R S T j j j j j U V j j j j W X Y Z . ",
|
||||||
|
" . ` ...+.Y @.#.$.@.%.Y &.&.*.@.=.+.-.;.. ",
|
||||||
|
" . >.,.'.).!.~.{.].^./.(._.:.{.<.[.}.|.1.. ",
|
||||||
|
" . 2.3.4.5.6.7.8.9.9.0.7.a.b.c.d.e.f.g.h.. ",
|
||||||
|
" . i.j.k.l.m.n.o.p.p.q.r.s.t.a.u.v.w.x.y.. ",
|
||||||
|
" . z.A.B.l.C.D.o.p.p.E.F.s.G.H.I.J.w.K.y.. ",
|
||||||
|
" . L.M.N.O.P.9.Q.R.R.S.s.T.U.V.W.X.Y.Z.`.. ",
|
||||||
|
" . +.+++@+#+$+%+&+&+s.*+=+-+=+;+>+,+'+)+. ",
|
||||||
|
" !+~+{+]+^+s.t./+/+(+_+0.:+<+[+}+|+1+2+. ",
|
||||||
|
" . . . . . . . . . . . . . . . . 3+. ",
|
||||||
|
" ",
|
||||||
|
" "};
|
After Width: | Height: | Size: 772 B |
|
@ -0,0 +1,7 @@
|
||||||
|
traydir = $(pkgdatadir)/pixmaps/tray
|
||||||
|
tray_DATA = default.svg \
|
||||||
|
active.svg \
|
||||||
|
activate.svg \
|
||||||
|
notify.svg
|
||||||
|
|
||||||
|
EXTRA_DIST = $(tray_DATA)
|
|
@ -0,0 +1,210 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1383"
|
||||||
|
height="20.000000"
|
||||||
|
width="20.000000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2401"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2399"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2329">
|
||||||
|
<stop
|
||||||
|
id="stop2331"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#c0dcbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2333"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#9bd591;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2335"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#6fc461;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2329"
|
||||||
|
id="radialGradient2397"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2407"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2405"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2099">
|
||||||
|
<stop
|
||||||
|
id="stop2101"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#babbdc;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2103"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#9193d5;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2105"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#6164c4;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2099"
|
||||||
|
id="radialGradient2403"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2170">
|
||||||
|
<stop
|
||||||
|
id="stop2172"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;" />
|
||||||
|
<stop
|
||||||
|
id="stop2174"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2389"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2156">
|
||||||
|
<stop
|
||||||
|
id="stop2158"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2162"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2387"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2183">
|
||||||
|
<stop
|
||||||
|
id="stop2185"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcbbbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2187"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d59191;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2189"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c46161;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2183"
|
||||||
|
id="radialGradient2385"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g2341"
|
||||||
|
transform="matrix(3.960176e-2,0.000000,0.000000,3.960176e-2,8.583018e-2,-21.13536)">
|
||||||
|
<path
|
||||||
|
id="path1291"
|
||||||
|
style="fill:url(#radialGradient2397);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2204"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 49.437500,636.68750 C 9.5976600,689.60788 -7.6271960,758.90434 2.9105100,824.39310 C 10.308170,874.10552 33.551850,921.19028 68.005840,957.74812 C 101.74452,993.63467 146.21320,1019.2699 194.24680,1030.2516 C 199.99153,1029.7800 204.92357,1024.0806 210.37445,1021.5583 C 215.90779,1017.6712 223.83362,1014.3732 226.03125,1007.8438 C 214.71347,1003.0390 201.26103,1009.5796 190.31449,1002.7652 C 183.05001,1000.4023 172.18692,993.68002 177.21875,984.71875 C 181.84751,975.69206 188.37504,966.27587 187.84375,955.81250 C 182.27407,952.29351 176.75441,959.84769 171.85169,962.23271 C 163.44133,968.75531 155.02010,959.49404 147.83592,955.54196 C 141.04333,951.13375 133.90750,943.08322 138.65546,934.63331 C 140.43113,929.52457 144.56495,924.72912 145.00000,919.43750 C 132.04760,907.74827 112.42524,901.33455 106.61503,883.19063 C 103.49587,877.85237 108.14552,870.98603 114.32775,873.19001 C 130.59663,876.43830 144.14277,887.19756 159.53125,892.59375 C 159.03403,882.21575 150.46649,873.36290 151.00000,862.90625 C 155.25471,858.23625 163.21295,860.61619 168.81504,858.17213 C 180.29677,855.24106 192.71966,852.03960 202.34375,845.43750 C 197.91139,834.26859 189.38937,825.02268 182.04158,815.62421 C 172.08277,806.05686 164.87883,792.96910 166.22505,778.78312 C 167.59111,771.89486 161.52097,768.10257 155.68750,766.71875 C 147.36821,762.57850 137.13811,760.61477 130.75000,753.56250 C 127.56405,745.44229 132.68058,737.37859 134.65625,729.68750 C 127.81109,714.34143 110.02988,707.49041 94.103600,707.62518 C 85.825620,707.08688 71.951440,707.44949 71.187500,696.34375 C 69.469880,688.39415 71.102430,679.54252 78.320230,674.80574 C 84.761240,668.88834 97.483650,663.82876 93.788660,652.90201 C 88.703610,638.40413 76.709880,626.47826 62.687500,620.50000 C 58.270830,625.89583 53.854170,631.29167 49.437500,636.68750 z " />
|
||||||
|
<path
|
||||||
|
id="path2434"
|
||||||
|
style="opacity:0.24999996;fill:url(#radialGradient2399);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2166"
|
||||||
|
style="fill:url(#radialGradient2401);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2401"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 399.65625,582.65625 C 382.54719,585.80937 363.97591,602.23601 344.21875,637.96875 C 348.41098,651.94283 317.84416,650.43163 304.56250,656.46875 C 294.03305,661.25487 292.40506,671.23182 291.34375,682.90625 C 289.64992,701.53839 312.27807,694.90784 286.03125,708.03125 C 274.43186,713.83095 288.05331,736.68222 279.43750,746.37500 C 268.46058,758.72403 284.65807,765.38859 292.65625,770.18750 C 308.12778,779.47042 324.86886,739.77254 327.03125,731.84375 C 331.91737,713.92794 337.00795,711.37256 345.53125,705.40625 C 355.16461,698.66291 350.37475,728.43658 353.46875,739.78125 C 356.05583,749.26718 347.30719,766.40211 346.84375,771.50000 C 346.16847,778.92820 378.05172,773.87859 345.53125,784.71875 C 338.97503,786.90416 346.08936,793.95213 342.90625,804.56250 C 340.81195,811.54352 334.17822,815.45725 332.31250,825.71875 C 330.62965,834.97443 323.54941,844.44727 319.09375,850.81250 C 314.49539,857.38158 341.49218,861.03906 345.53125,861.40625 C 353.24994,862.10796 363.33867,869.86047 371.96875,873.31250 C 386.54655,879.14361 374.74782,894.74768 371.96875,899.75000 C 366.61834,909.38075 365.35096,932.81610 375.93750,920.90625 C 387.25289,908.17646 407.94039,903.69590 414.28125,887.84375 C 420.27486,872.85972 405.96038,867.20200 399.75000,854.78125 C 392.94162,841.16450 405.78361,833.60281 411.62500,827.03125 C 475.09922,835.11177 404.24911,880.92665 448.65625,879.90625 C 455.23268,876.25268 452.86072,803.91891 460.56250,803.21875 C 469.26117,802.42797 488.86303,807.73014 501.84375,808.34375 C 502.47868,801.04649 502.87500,793.67982 502.87500,786.21875 C 502.87500,702.69263 462.20861,628.63106 399.65625,582.65625 z " />
|
||||||
|
<path
|
||||||
|
id="path2399"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 135.32722,630.03897 C 121.98710,640.71107 152.08415,655.15817 159.12436,655.15817 C 180.96110,655.15817 190.38957,660.12381 194.82006,637.97135 C 197.74779,623.33269 216.13712,619.81201 223.90545,615.49628 C 232.84080,610.53219 224.93446,594.87941 227.87163,585.08883 C 232.15017,570.82704 213.12453,571.33170 205.39656,569.22407 C 189.97641,565.01857 178.92989,578.50392 171.02292,586.41089 C 164.35819,593.07562 149.22800,590.10502 141.93754,593.02121 C 126.36521,599.25014 155.35654,606.24183 161.76848,606.24183 C 175.52283,603.59770 146.88983,620.78888 135.32722,630.03897 z " />
|
||||||
|
<path
|
||||||
|
id="path2423"
|
||||||
|
style="opacity:0.099999972;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 48.187500,644.40625 C -1.6207600,710.56969 -13.978323,802.87199 17.061220,879.72647 C 45.173010,951.33820 108.99006,1008.7189 184.04223,1026.5028 C 192.51780,1029.0206 199.09197,1020.9521 206.03285,1017.2641 C 207.81574,1014.6500 195.65768,1016.8206 191.70916,1015.0703 C 181.71784,1013.3284 170.39424,1009.0878 165.71875,999.34375 C 160.37898,988.30241 171.08569,979.31509 174.05637,969.35193 C 174.19270,966.36595 166.58063,973.68019 162.92103,973.77971 C 153.25451,976.30241 145.14979,968.17720 137.37784,963.68475 C 127.72164,957.44422 121.62953,944.16910 128.41304,933.67460 C 132.57168,928.29626 132.27474,923.55922 125.50063,920.97969 C 112.16569,911.68729 96.881990,901.45420 93.916170,884.16335 C 92.510810,873.38952 106.59067,867.62877 114.88882,872.84504 C 125.12373,875.88026 134.30336,881.42984 144.03125,885.68750 C 141.05661,878.45086 135.93602,868.03258 142.49324,861.47261 C 152.70468,855.90215 165.03357,857.03535 175.60779,852.16962 C 179.36902,850.54499 186.85772,849.57638 187.86265,846.15458 C 177.52178,826.86016 156.08045,813.01972 154.39657,789.58757 C 154.51617,784.46394 154.76014,777.60868 148.25153,776.59640 C 137.09561,771.36225 120.80599,768.33845 117.81250,754.31250 C 116.76895,747.02308 121.90199,739.97546 121.21549,733.14418 C 111.90553,718.11962 92.413510,717.54866 76.656250,716.78125 C 65.970910,715.62856 57.235050,705.95527 58.647090,695.00645 C 57.974580,682.52727 67.873420,673.19094 77.613480,667.14427 C 82.764790,663.79110 83.101260,657.23780 79.128590,652.86860 C 74.583390,643.95207 66.930840,636.87622 58.156250,632.18750 C 54.833330,636.26042 51.510420,640.33333 48.187500,644.40625 z " />
|
||||||
|
<path
|
||||||
|
id="path2226"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 399.37500,590.09375 C 378.29141,600.08693 364.72487,620.70788 354.20936,640.52866 C 353.54971,652.87632 338.98983,655.47392 329.25510,657.47334 C 319.33904,659.48865 305.10504,660.60223 303.10159,673.00100 C 300.88136,680.28952 300.24041,689.50025 307.00000,694.59375 C 311.74293,703.44393 301.30223,709.41807 294.53125,712.40625 C 287.43904,718.49610 293.62889,728.51152 292.31906,736.40610 C 293.44124,743.41168 287.01197,748.87655 286.62500,755.18750 C 289.61107,760.51338 296.32367,763.57831 301.93679,764.89706 C 310.40467,762.68375 313.71627,752.88257 318.43750,746.37500 C 326.31132,730.65509 328.73782,709.78081 345.89502,700.88085 C 352.80806,695.61900 360.86666,702.13224 361.56250,709.62500 C 361.77949,721.78476 363.24024,733.92725 363.36635,746.08849 C 363.80310,754.50241 359.13324,761.77081 357.90625,769.75000 C 363.21804,770.01381 371.15411,773.44787 369.40625,780.31250 C 366.43351,786.61567 358.54840,787.05580 353.03125,790.00000 C 355.05234,800.86303 351.24782,811.82104 344.88544,820.47050 C 340.45931,830.86159 337.52199,842.30876 330.12500,851.00000 C 340.60124,854.85022 352.97436,854.77049 363.35368,859.97934 C 372.19442,865.51028 385.29528,868.26033 388.62062,879.45184 C 390.35779,892.21800 379.28802,902.23593 377.81250,914.53125 C 388.27941,904.30020 404.25153,899.87559 411.73404,886.79806 C 417.15865,876.81953 405.91795,869.69951 401.46737,862.06510 C 393.55808,853.15402 394.91462,839.32929 403.13220,831.11574 C 407.95921,826.11871 413.93296,819.01026 421.68561,822.25164 C 435.22896,823.19276 450.88128,832.82483 449.53125,848.09375 C 448.83115,856.51118 443.23641,864.00746 443.81250,872.56250 C 448.83380,876.72366 450.77585,869.70056 450.01113,865.75989 C 452.99959,844.39633 451.01999,822.02173 458.25000,801.46875 C 466.01067,792.90788 477.96689,799.58417 487.58569,799.80942 C 493.09157,799.85509 502.84925,805.04161 500.50923,795.60079 C 504.07415,718.78507 468.47279,641.54970 408.28591,593.81944 C 405.84158,591.81764 402.79052,588.51735 399.37500,590.09375 z " />
|
||||||
|
<path
|
||||||
|
id="path2232"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 196.03125,572.90625 C 182.00437,577.21624 175.15670,594.98492 159.18750,594.81250 C 151.16243,594.84622 147.23312,596.19819 157.48405,597.43962 C 162.27451,598.71366 169.80722,595.91811 170.87803,602.65496 C 172.32034,611.69758 161.43665,615.74735 155.74416,620.54906 C 149.86694,624.68076 143.92700,628.77405 138.71875,633.75000 C 141.15812,641.11726 150.07831,643.83205 156.71540,646.12510 C 165.40474,647.98036 175.16304,648.43926 183.50914,645.87681 C 190.54103,638.43112 189.02421,625.44226 198.57500,619.72268 C 205.09564,613.40123 216.48303,613.05725 221.56332,605.69198 C 222.94075,596.91328 220.18862,588.05072 221.90625,579.28125 C 217.78697,573.22676 208.89717,575.02229 202.62390,572.95074 C 200.44632,572.45909 198.23369,572.88570 196.03125,572.90625 z " />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,198 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1383"
|
||||||
|
height="20.000000"
|
||||||
|
width="20.000000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2395"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2393"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2147">
|
||||||
|
<stop
|
||||||
|
id="stop2149"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcdcbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2153"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d5d591;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2151"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c4c361;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2147"
|
||||||
|
id="radialGradient2391"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2401"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2399"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2329">
|
||||||
|
<stop
|
||||||
|
id="stop2331"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#c0dcbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2333"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#9bd591;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2335"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#6fc461;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2329"
|
||||||
|
id="radialGradient2397"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2099">
|
||||||
|
<stop
|
||||||
|
id="stop2101"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#babbdc;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2103"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#9193d5;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2105"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#6164c4;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2170">
|
||||||
|
<stop
|
||||||
|
id="stop2172"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;" />
|
||||||
|
<stop
|
||||||
|
id="stop2174"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2156">
|
||||||
|
<stop
|
||||||
|
id="stop2158"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2162"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2183">
|
||||||
|
<stop
|
||||||
|
id="stop2185"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcbbbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2187"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d59191;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2189"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c46161;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g2363"
|
||||||
|
transform="matrix(3.960064e-2,0.000000,0.000000,3.960176e-2,-20.50650,-0.542442)">
|
||||||
|
<path
|
||||||
|
id="path2237"
|
||||||
|
style="fill:url(#radialGradient2391);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2239"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 569.43750,116.68750 C 529.59766,169.60788 512.37280,238.90434 522.91051,304.39310 C 530.30817,354.10552 553.55185,401.19028 588.00584,437.74812 C 621.74452,473.63467 666.21320,499.26985 714.24680,510.25156 C 719.99153,509.77997 724.92357,504.08065 730.37445,501.55834 C 735.90779,497.67119 743.83362,494.37316 746.03125,487.84375 C 734.71347,483.03902 721.26103,489.57962 710.31449,482.76524 C 703.05001,480.40226 692.18692,473.68002 697.21875,464.71875 C 701.84751,455.69206 708.37504,446.27587 707.84375,435.81250 C 702.27407,432.29351 696.75441,439.84769 691.85169,442.23271 C 683.44133,448.75531 675.02010,439.49404 667.83592,435.54196 C 661.04333,431.13375 653.90750,423.08322 658.65546,414.63331 C 660.43113,409.52457 664.56495,404.72912 665.00000,399.43750 C 652.04760,387.74827 632.42524,381.33455 626.61503,363.19063 C 623.49587,357.85237 628.14552,350.98603 634.32775,353.19001 C 650.59663,356.43830 664.14277,367.19756 679.53125,372.59375 C 679.03403,362.21575 670.46649,353.36290 671.00000,342.90625 C 675.25471,338.23625 683.21295,340.61619 688.81504,338.17213 C 700.29677,335.24106 712.71966,332.03960 722.34375,325.43750 C 717.91139,314.26859 709.38937,305.02268 702.04158,295.62421 C 692.08277,286.05686 684.87883,272.96910 686.22505,258.78312 C 687.59111,251.89486 681.52097,248.10257 675.68750,246.71875 C 667.36821,242.57850 657.13811,240.61477 650.75000,233.56250 C 647.56405,225.44229 652.68058,217.37859 654.65625,209.68750 C 647.81109,194.34143 630.02988,187.49041 614.10360,187.62518 C 605.82562,187.08688 591.95144,187.44949 591.18750,176.34375 C 589.46988,168.39415 591.10243,159.54252 598.32023,154.80574 C 604.76124,148.88834 617.48365,143.82876 613.78866,132.90201 C 608.70361,118.40413 596.70988,106.47826 582.68750,100.50000 C 578.27083,105.89583 573.85417,111.29167 569.43750,116.68750 z " />
|
||||||
|
<path
|
||||||
|
id="path2241"
|
||||||
|
style="opacity:0.24999996;fill:url(#radialGradient2393);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2243"
|
||||||
|
style="fill:url(#radialGradient2395);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2245"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 919.65625,62.656250 C 902.54719,65.809370 883.97591,82.236010 864.21875,117.96875 C 868.41098,131.94283 837.84416,130.43163 824.56250,136.46875 C 814.03305,141.25487 812.40506,151.23182 811.34375,162.90625 C 809.64992,181.53839 832.27807,174.90784 806.03125,188.03125 C 794.43186,193.83095 808.05331,216.68222 799.43750,226.37500 C 788.46058,238.72403 804.65807,245.38859 812.65625,250.18750 C 828.12778,259.47042 844.86886,219.77254 847.03125,211.84375 C 851.91737,193.92794 857.00795,191.37256 865.53125,185.40625 C 875.16461,178.66291 870.37475,208.43658 873.46875,219.78125 C 876.05583,229.26718 867.30719,246.40211 866.84375,251.50000 C 866.16847,258.92820 898.05172,253.87859 865.53125,264.71875 C 858.97503,266.90416 866.08936,273.95213 862.90625,284.56250 C 860.81195,291.54352 854.17822,295.45725 852.31250,305.71875 C 850.62965,314.97443 843.54941,324.44727 839.09375,330.81250 C 834.49539,337.38158 861.49218,341.03906 865.53125,341.40625 C 873.24994,342.10796 883.33867,349.86047 891.96875,353.31250 C 906.54655,359.14361 894.74782,374.74768 891.96875,379.75000 C 886.61834,389.38075 885.35096,412.81610 895.93750,400.90625 C 907.25289,388.17646 927.94039,383.69590 934.28125,367.84375 C 940.27486,352.85972 925.96038,347.20200 919.75000,334.78125 C 912.94162,321.16450 925.78361,313.60281 931.62500,307.03125 C 995.09922,315.11177 924.24911,360.92665 968.65625,359.90625 C 975.23268,356.25268 972.86072,283.91891 980.56250,283.21875 C 989.26117,282.42797 1008.8630,287.73014 1021.8438,288.34375 C 1022.4787,281.04649 1022.8750,273.67982 1022.8750,266.21875 C 1022.8750,182.69263 982.20861,108.63106 919.65625,62.656250 z " />
|
||||||
|
<path
|
||||||
|
id="path2247"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 655.32722,110.03897 C 641.98710,120.71107 672.08415,135.15817 679.12436,135.15817 C 700.96110,135.15817 710.38957,140.12381 714.82006,117.97135 C 717.74779,103.33269 736.13712,99.812010 743.90545,95.496280 C 752.84080,90.532190 744.93446,74.879410 747.87163,65.088830 C 752.15017,50.827040 733.12453,51.331700 725.39656,49.224070 C 709.97641,45.018570 698.92989,58.503920 691.02292,66.410890 C 684.35819,73.075620 669.22800,70.105020 661.93754,73.021210 C 646.36521,79.250140 675.35654,86.241830 681.76848,86.241830 C 695.52283,83.597700 666.88983,100.78888 655.32722,110.03897 z " />
|
||||||
|
<path
|
||||||
|
id="path2249"
|
||||||
|
style="opacity:0.099999972;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 568.18750,124.40625 C 518.37924,190.56969 506.02168,282.87199 537.06122,359.72647 C 565.17301,431.33820 628.99006,488.71895 704.04223,506.50276 C 712.51780,509.02061 719.09197,500.95210 726.03285,497.26410 C 727.81574,494.65005 715.65768,496.82064 711.70916,495.07030 C 701.71784,493.32843 690.39424,489.08779 685.71875,479.34375 C 680.37898,468.30241 691.08569,459.31509 694.05637,449.35193 C 694.19270,446.36595 686.58063,453.68019 682.92103,453.77971 C 673.25451,456.30241 665.14979,448.17720 657.37784,443.68475 C 647.72164,437.44422 641.62953,424.16910 648.41304,413.67460 C 652.57168,408.29626 652.27474,403.55922 645.50063,400.97969 C 632.16569,391.68729 616.88199,381.45420 613.91617,364.16335 C 612.51081,353.38952 626.59067,347.62877 634.88882,352.84504 C 645.12373,355.88026 654.30336,361.42984 664.03125,365.68750 C 661.05661,358.45086 655.93602,348.03258 662.49324,341.47261 C 672.70468,335.90215 685.03357,337.03535 695.60779,332.16962 C 699.36902,330.54499 706.85772,329.57638 707.86265,326.15458 C 697.52178,306.86016 676.08045,293.01972 674.39657,269.58757 C 674.51617,264.46394 674.76014,257.60868 668.25153,256.59640 C 657.09561,251.36225 640.80599,248.33845 637.81250,234.31250 C 636.76895,227.02308 641.90199,219.97546 641.21549,213.14418 C 631.90553,198.11962 612.41351,197.54866 596.65625,196.78125 C 585.97091,195.62856 577.23505,185.95527 578.64709,175.00645 C 577.97458,162.52727 587.87342,153.19094 597.61348,147.14427 C 602.76479,143.79110 603.10126,137.23780 599.12859,132.86860 C 594.58339,123.95207 586.93084,116.87622 578.15625,112.18750 C 574.83333,116.26042 571.51042,120.33333 568.18750,124.40625 z " />
|
||||||
|
<path
|
||||||
|
id="path2251"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 919.37500,70.093750 C 898.29141,80.086930 884.72487,100.70788 874.20936,120.52866 C 873.54971,132.87632 858.98983,135.47392 849.25510,137.47334 C 839.33904,139.48865 825.10504,140.60223 823.10159,153.00100 C 820.88136,160.28952 820.24041,169.50025 827.00000,174.59375 C 831.74293,183.44393 821.30223,189.41807 814.53125,192.40625 C 807.43904,198.49610 813.62889,208.51152 812.31906,216.40610 C 813.44124,223.41168 807.01197,228.87655 806.62500,235.18750 C 809.61107,240.51338 816.32367,243.57831 821.93679,244.89706 C 830.40467,242.68375 833.71627,232.88257 838.43750,226.37500 C 846.31132,210.65509 848.73782,189.78081 865.89502,180.88085 C 872.80806,175.61900 880.86666,182.13224 881.56250,189.62500 C 881.77949,201.78476 883.24024,213.92725 883.36635,226.08849 C 883.80310,234.50241 879.13324,241.77081 877.90625,249.75000 C 883.21804,250.01381 891.15411,253.44787 889.40625,260.31250 C 886.43351,266.61567 878.54840,267.05580 873.03125,270.00000 C 875.05234,280.86303 871.24782,291.82104 864.88544,300.47050 C 860.45931,310.86159 857.52199,322.30876 850.12500,331.00000 C 860.60124,334.85022 872.97436,334.77049 883.35368,339.97934 C 892.19442,345.51028 905.29528,348.26033 908.62062,359.45184 C 910.35779,372.21800 899.28802,382.23593 897.81250,394.53125 C 908.27941,384.30020 924.25153,379.87559 931.73404,366.79806 C 937.15865,356.81953 925.91795,349.69951 921.46737,342.06510 C 913.55808,333.15402 914.91462,319.32929 923.13220,311.11574 C 927.95921,306.11871 933.93296,299.01026 941.68561,302.25164 C 955.22896,303.19276 970.88128,312.82483 969.53125,328.09375 C 968.83115,336.51118 963.23641,344.00746 963.81250,352.56250 C 968.83380,356.72366 970.77585,349.70056 970.01113,345.75989 C 972.99959,324.39633 971.01999,302.02173 978.25000,281.46875 C 986.01067,272.90788 997.96689,279.58417 1007.5857,279.80942 C 1013.0916,279.85509 1022.8492,285.04161 1020.5092,275.60079 C 1024.0741,198.78507 988.47279,121.54970 928.28591,73.819440 C 925.84158,71.817640 922.79052,68.517350 919.37500,70.093750 z " />
|
||||||
|
<path
|
||||||
|
id="path2253"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 716.03125,52.906250 C 702.00437,57.216240 695.15670,74.984920 679.18750,74.812500 C 671.16243,74.846220 667.23312,76.198190 677.48405,77.439620 C 682.27451,78.713660 689.80722,75.918110 690.87803,82.654960 C 692.32034,91.697580 681.43665,95.747350 675.74416,100.54906 C 669.86694,104.68076 663.92700,108.77405 658.71875,113.75000 C 661.15812,121.11726 670.07831,123.83205 676.71540,126.12510 C 685.40474,127.98036 695.16304,128.43926 703.50914,125.87681 C 710.54103,118.43112 709.02421,105.44226 718.57500,99.722680 C 725.09564,93.401230 736.48303,93.057250 741.56332,85.691980 C 742.94075,76.913280 740.18862,68.050720 741.90625,59.281250 C 737.78697,53.226760 728.89717,55.022290 722.62390,52.950740 C 720.44632,52.459090 718.23369,52.885700 716.03125,52.906250 z " />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1383"
|
||||||
|
height="20.000000"
|
||||||
|
width="20.000000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2407"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2405"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2099">
|
||||||
|
<stop
|
||||||
|
id="stop2101"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#babbdc;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2103"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#9193d5;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2105"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#6164c4;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2099"
|
||||||
|
id="radialGradient2403"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2170">
|
||||||
|
<stop
|
||||||
|
id="stop2172"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;" />
|
||||||
|
<stop
|
||||||
|
id="stop2174"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2389"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2156">
|
||||||
|
<stop
|
||||||
|
id="stop2158"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2162"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2387"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2183">
|
||||||
|
<stop
|
||||||
|
id="stop2185"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcbbbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2187"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d59191;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2189"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c46161;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2183"
|
||||||
|
id="radialGradient2385"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g2352"
|
||||||
|
transform="matrix(3.960176e-2,0.000000,0.000000,3.960176e-2,8.583018e-2,-0.542443)">
|
||||||
|
<path
|
||||||
|
id="path2205"
|
||||||
|
style="fill:url(#radialGradient2403);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2207"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 49.437500,116.68750 C 9.5976600,169.60788 -7.6271960,238.90434 2.9105100,304.39310 C 10.308170,354.10552 33.551850,401.19028 68.005840,437.74812 C 101.74452,473.63467 146.21320,499.26985 194.24680,510.25156 C 199.99153,509.77997 204.92357,504.08065 210.37445,501.55834 C 215.90779,497.67119 223.83362,494.37316 226.03125,487.84375 C 214.71347,483.03902 201.26103,489.57962 190.31449,482.76524 C 183.05001,480.40226 172.18692,473.68002 177.21875,464.71875 C 181.84751,455.69206 188.37504,446.27587 187.84375,435.81250 C 182.27407,432.29351 176.75441,439.84769 171.85169,442.23271 C 163.44133,448.75531 155.02010,439.49404 147.83592,435.54196 C 141.04333,431.13375 133.90750,423.08322 138.65546,414.63331 C 140.43113,409.52457 144.56495,404.72912 145.00000,399.43750 C 132.04760,387.74827 112.42524,381.33455 106.61503,363.19063 C 103.49587,357.85237 108.14552,350.98603 114.32775,353.19001 C 130.59663,356.43830 144.14277,367.19756 159.53125,372.59375 C 159.03403,362.21575 150.46649,353.36290 151.00000,342.90625 C 155.25471,338.23625 163.21295,340.61619 168.81504,338.17213 C 180.29677,335.24106 192.71966,332.03960 202.34375,325.43750 C 197.91139,314.26859 189.38937,305.02268 182.04158,295.62421 C 172.08277,286.05686 164.87883,272.96910 166.22505,258.78312 C 167.59111,251.89486 161.52097,248.10257 155.68750,246.71875 C 147.36821,242.57850 137.13811,240.61477 130.75000,233.56250 C 127.56405,225.44229 132.68058,217.37859 134.65625,209.68750 C 127.81109,194.34143 110.02988,187.49041 94.103600,187.62518 C 85.825620,187.08688 71.951440,187.44949 71.187500,176.34375 C 69.469880,168.39415 71.102430,159.54252 78.320230,154.80574 C 84.761240,148.88834 97.483650,143.82876 93.788660,132.90201 C 88.703610,118.40413 76.709880,106.47826 62.687500,100.50000 C 58.270830,105.89583 53.854170,111.29167 49.437500,116.68750 z " />
|
||||||
|
<path
|
||||||
|
id="path2209"
|
||||||
|
style="opacity:0.24999996;fill:url(#radialGradient2405);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2211"
|
||||||
|
style="fill:url(#radialGradient2407);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2213"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 399.65625,62.656250 C 382.54719,65.809370 363.97591,82.236010 344.21875,117.96875 C 348.41098,131.94283 317.84416,130.43163 304.56250,136.46875 C 294.03305,141.25487 292.40506,151.23182 291.34375,162.90625 C 289.64992,181.53839 312.27807,174.90784 286.03125,188.03125 C 274.43186,193.83095 288.05331,216.68222 279.43750,226.37500 C 268.46058,238.72403 284.65807,245.38859 292.65625,250.18750 C 308.12778,259.47042 324.86886,219.77254 327.03125,211.84375 C 331.91737,193.92794 337.00795,191.37256 345.53125,185.40625 C 355.16461,178.66291 350.37475,208.43658 353.46875,219.78125 C 356.05583,229.26718 347.30719,246.40211 346.84375,251.50000 C 346.16847,258.92820 378.05172,253.87859 345.53125,264.71875 C 338.97503,266.90416 346.08936,273.95213 342.90625,284.56250 C 340.81195,291.54352 334.17822,295.45725 332.31250,305.71875 C 330.62965,314.97443 323.54941,324.44727 319.09375,330.81250 C 314.49539,337.38158 341.49218,341.03906 345.53125,341.40625 C 353.24994,342.10796 363.33867,349.86047 371.96875,353.31250 C 386.54655,359.14361 374.74782,374.74768 371.96875,379.75000 C 366.61834,389.38075 365.35096,412.81610 375.93750,400.90625 C 387.25289,388.17646 407.94039,383.69590 414.28125,367.84375 C 420.27486,352.85972 405.96038,347.20200 399.75000,334.78125 C 392.94162,321.16450 405.78361,313.60281 411.62500,307.03125 C 475.09922,315.11177 404.24911,360.92665 448.65625,359.90625 C 455.23268,356.25268 452.86072,283.91891 460.56250,283.21875 C 469.26117,282.42797 488.86303,287.73014 501.84375,288.34375 C 502.47868,281.04649 502.87500,273.67982 502.87500,266.21875 C 502.87500,182.69263 462.20861,108.63106 399.65625,62.656250 z " />
|
||||||
|
<path
|
||||||
|
id="path2215"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 135.32722,110.03897 C 121.98710,120.71107 152.08415,135.15817 159.12436,135.15817 C 180.96110,135.15817 190.38957,140.12381 194.82006,117.97135 C 197.74779,103.33269 216.13712,99.812010 223.90545,95.496280 C 232.84080,90.532190 224.93446,74.879410 227.87163,65.088830 C 232.15017,50.827040 213.12453,51.331700 205.39656,49.224070 C 189.97641,45.018570 178.92989,58.503920 171.02292,66.410890 C 164.35819,73.075620 149.22800,70.105020 141.93754,73.021210 C 126.36521,79.250140 155.35654,86.241830 161.76848,86.241830 C 175.52283,83.597700 146.88983,100.78888 135.32722,110.03897 z " />
|
||||||
|
<path
|
||||||
|
id="path2217"
|
||||||
|
style="opacity:0.099999972;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 48.187500,124.40625 C -1.6207600,190.56969 -13.978323,282.87199 17.061220,359.72647 C 45.173010,431.33820 108.99006,488.71895 184.04223,506.50276 C 192.51780,509.02061 199.09197,500.95210 206.03285,497.26410 C 207.81574,494.65005 195.65768,496.82064 191.70916,495.07030 C 181.71784,493.32843 170.39424,489.08779 165.71875,479.34375 C 160.37898,468.30241 171.08569,459.31509 174.05637,449.35193 C 174.19270,446.36595 166.58063,453.68019 162.92103,453.77971 C 153.25451,456.30241 145.14979,448.17720 137.37784,443.68475 C 127.72164,437.44422 121.62953,424.16910 128.41304,413.67460 C 132.57168,408.29626 132.27474,403.55922 125.50063,400.97969 C 112.16569,391.68729 96.881990,381.45420 93.916170,364.16335 C 92.510810,353.38952 106.59067,347.62877 114.88882,352.84504 C 125.12373,355.88026 134.30336,361.42984 144.03125,365.68750 C 141.05661,358.45086 135.93602,348.03258 142.49324,341.47261 C 152.70468,335.90215 165.03357,337.03535 175.60779,332.16962 C 179.36902,330.54499 186.85772,329.57638 187.86265,326.15458 C 177.52178,306.86016 156.08045,293.01972 154.39657,269.58757 C 154.51617,264.46394 154.76014,257.60868 148.25153,256.59640 C 137.09561,251.36225 120.80599,248.33845 117.81250,234.31250 C 116.76895,227.02308 121.90199,219.97546 121.21549,213.14418 C 111.90553,198.11962 92.413510,197.54866 76.656250,196.78125 C 65.970910,195.62856 57.235050,185.95527 58.647090,175.00645 C 57.974580,162.52727 67.873420,153.19094 77.613480,147.14427 C 82.764790,143.79110 83.101260,137.23780 79.128590,132.86860 C 74.583390,123.95207 66.930840,116.87622 58.156250,112.18750 C 54.833330,116.26042 51.510420,120.33333 48.187500,124.40625 z " />
|
||||||
|
<path
|
||||||
|
id="path2219"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 399.37500,70.093750 C 378.29141,80.086930 364.72487,100.70788 354.20936,120.52866 C 353.54971,132.87632 338.98983,135.47392 329.25510,137.47334 C 319.33904,139.48865 305.10504,140.60223 303.10159,153.00100 C 300.88136,160.28952 300.24041,169.50025 307.00000,174.59375 C 311.74293,183.44393 301.30223,189.41807 294.53125,192.40625 C 287.43904,198.49610 293.62889,208.51152 292.31906,216.40610 C 293.44124,223.41168 287.01197,228.87655 286.62500,235.18750 C 289.61107,240.51338 296.32367,243.57831 301.93679,244.89706 C 310.40467,242.68375 313.71627,232.88257 318.43750,226.37500 C 326.31132,210.65509 328.73782,189.78081 345.89502,180.88085 C 352.80806,175.61900 360.86666,182.13224 361.56250,189.62500 C 361.77949,201.78476 363.24024,213.92725 363.36635,226.08849 C 363.80310,234.50241 359.13324,241.77081 357.90625,249.75000 C 363.21804,250.01381 371.15411,253.44787 369.40625,260.31250 C 366.43351,266.61567 358.54840,267.05580 353.03125,270.00000 C 355.05234,280.86303 351.24782,291.82104 344.88544,300.47050 C 340.45931,310.86159 337.52199,322.30876 330.12500,331.00000 C 340.60124,334.85022 352.97436,334.77049 363.35368,339.97934 C 372.19442,345.51028 385.29528,348.26033 388.62062,359.45184 C 390.35779,372.21800 379.28802,382.23593 377.81250,394.53125 C 388.27941,384.30020 404.25153,379.87559 411.73404,366.79806 C 417.15865,356.81953 405.91795,349.69951 401.46737,342.06510 C 393.55808,333.15402 394.91462,319.32929 403.13220,311.11574 C 407.95921,306.11871 413.93296,299.01026 421.68561,302.25164 C 435.22896,303.19276 450.88128,312.82483 449.53125,328.09375 C 448.83115,336.51118 443.23641,344.00746 443.81250,352.56250 C 448.83380,356.72366 450.77585,349.70056 450.01113,345.75989 C 452.99959,324.39633 451.01999,302.02173 458.25000,281.46875 C 466.01067,272.90788 477.96689,279.58417 487.58569,279.80942 C 493.09157,279.85509 502.84925,285.04161 500.50923,275.60079 C 504.07415,198.78507 468.47279,121.54970 408.28591,73.819440 C 405.84158,71.817640 402.79052,68.517350 399.37500,70.093750 z " />
|
||||||
|
<path
|
||||||
|
id="path2221"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 196.03125,52.906250 C 182.00437,57.216240 175.15670,74.984920 159.18750,74.812500 C 151.16243,74.846220 147.23312,76.198190 157.48405,77.439620 C 162.27451,78.713660 169.80722,75.918110 170.87803,82.654960 C 172.32034,91.697580 161.43665,95.747350 155.74416,100.54906 C 149.86694,104.68076 143.92700,108.77405 138.71875,113.75000 C 141.15812,121.11726 150.07831,123.83205 156.71540,126.12510 C 165.40474,127.98036 175.16304,128.43926 183.50914,125.87681 C 190.54103,118.43112 189.02421,105.44226 198.57500,99.722680 C 205.09564,93.401230 216.48303,93.057250 221.56332,85.691980 C 222.94075,76.913280 220.18862,68.050720 221.90625,59.281250 C 217.78697,53.226760 208.89717,55.022290 202.62390,52.950740 C 200.44632,52.459090 198.23369,52.885700 196.03125,52.906250 z " />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,126 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1383"
|
||||||
|
height="20.000000"
|
||||||
|
width="20.000000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2170">
|
||||||
|
<stop
|
||||||
|
id="stop2172"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;" />
|
||||||
|
<stop
|
||||||
|
id="stop2174"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2389"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2156">
|
||||||
|
<stop
|
||||||
|
id="stop2158"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2162"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2387"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2183">
|
||||||
|
<stop
|
||||||
|
id="stop2185"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcbbbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2187"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d59191;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2189"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c46161;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2183"
|
||||||
|
id="radialGradient2385"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g2374"
|
||||||
|
transform="matrix(3.960176e-2,0.000000,0.000000,3.960176e-2,-20.50708,-21.13536)">
|
||||||
|
<path
|
||||||
|
id="path2263"
|
||||||
|
style="fill:url(#radialGradient2385);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2265"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 569.43750,636.68750 C 529.59766,689.60788 512.37280,758.90434 522.91051,824.39310 C 530.30817,874.10552 553.55185,921.19028 588.00584,957.74812 C 621.74452,993.63467 666.21320,1019.2699 714.24680,1030.2516 C 719.99153,1029.7800 724.92357,1024.0806 730.37445,1021.5583 C 735.90779,1017.6712 743.83362,1014.3732 746.03125,1007.8438 C 734.71347,1003.0390 721.26103,1009.5796 710.31449,1002.7652 C 703.05001,1000.4023 692.18692,993.68002 697.21875,984.71875 C 701.84751,975.69206 708.37504,966.27587 707.84375,955.81250 C 702.27407,952.29351 696.75441,959.84769 691.85169,962.23271 C 683.44133,968.75531 675.02010,959.49404 667.83592,955.54196 C 661.04333,951.13375 653.90750,943.08322 658.65546,934.63331 C 660.43113,929.52457 664.56495,924.72912 665.00000,919.43750 C 652.04760,907.74827 632.42524,901.33455 626.61503,883.19063 C 623.49587,877.85237 628.14552,870.98603 634.32775,873.19001 C 650.59663,876.43830 664.14277,887.19756 679.53125,892.59375 C 679.03403,882.21575 670.46649,873.36290 671.00000,862.90625 C 675.25471,858.23625 683.21295,860.61619 688.81504,858.17213 C 700.29677,855.24106 712.71966,852.03960 722.34375,845.43750 C 717.91139,834.26859 709.38937,825.02268 702.04158,815.62421 C 692.08277,806.05686 684.87883,792.96910 686.22505,778.78312 C 687.59111,771.89486 681.52097,768.10257 675.68750,766.71875 C 667.36821,762.57850 657.13811,760.61477 650.75000,753.56250 C 647.56405,745.44229 652.68058,737.37859 654.65625,729.68750 C 647.81109,714.34143 630.02988,707.49041 614.10360,707.62518 C 605.82562,707.08688 591.95144,707.44949 591.18750,696.34375 C 589.46988,688.39415 591.10243,679.54252 598.32023,674.80574 C 604.76124,668.88834 617.48365,663.82876 613.78866,652.90201 C 608.70361,638.40413 596.70988,626.47826 582.68750,620.50000 C 578.27083,625.89583 573.85417,631.29167 569.43750,636.68750 z " />
|
||||||
|
<path
|
||||||
|
id="path2267"
|
||||||
|
style="opacity:0.24999996;fill:url(#radialGradient2387);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2269"
|
||||||
|
style="fill:url(#radialGradient2389);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2271"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 919.65625,582.65625 C 902.54719,585.80937 883.97591,602.23601 864.21875,637.96875 C 868.41098,651.94283 837.84416,650.43163 824.56250,656.46875 C 814.03305,661.25487 812.40506,671.23182 811.34375,682.90625 C 809.64992,701.53839 832.27807,694.90784 806.03125,708.03125 C 794.43186,713.83095 808.05331,736.68222 799.43750,746.37500 C 788.46058,758.72403 804.65807,765.38859 812.65625,770.18750 C 828.12778,779.47042 844.86886,739.77254 847.03125,731.84375 C 851.91737,713.92794 857.00795,711.37256 865.53125,705.40625 C 875.16461,698.66291 870.37475,728.43658 873.46875,739.78125 C 876.05583,749.26718 867.30719,766.40211 866.84375,771.50000 C 866.16847,778.92820 898.05172,773.87859 865.53125,784.71875 C 858.97503,786.90416 866.08936,793.95213 862.90625,804.56250 C 860.81195,811.54352 854.17822,815.45725 852.31250,825.71875 C 850.62965,834.97443 843.54941,844.44727 839.09375,850.81250 C 834.49539,857.38158 861.49218,861.03906 865.53125,861.40625 C 873.24994,862.10796 883.33867,869.86047 891.96875,873.31250 C 906.54655,879.14361 894.74782,894.74768 891.96875,899.75000 C 886.61834,909.38075 885.35096,932.81610 895.93750,920.90625 C 907.25289,908.17646 927.94039,903.69590 934.28125,887.84375 C 940.27486,872.85972 925.96038,867.20200 919.75000,854.78125 C 912.94162,841.16450 925.78361,833.60281 931.62500,827.03125 C 995.09922,835.11177 924.24911,880.92665 968.65625,879.90625 C 975.23268,876.25268 972.86072,803.91891 980.56250,803.21875 C 989.26117,802.42797 1008.8630,807.73014 1021.8438,808.34375 C 1022.4787,801.04649 1022.8750,793.67982 1022.8750,786.21875 C 1022.8750,702.69263 982.20861,628.63106 919.65625,582.65625 z " />
|
||||||
|
<path
|
||||||
|
id="path2273"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 655.32722,630.03897 C 641.98710,640.71107 672.08415,655.15817 679.12436,655.15817 C 700.96110,655.15817 710.38957,660.12381 714.82006,637.97135 C 717.74779,623.33269 736.13712,619.81201 743.90545,615.49628 C 752.84080,610.53219 744.93446,594.87941 747.87163,585.08883 C 752.15017,570.82704 733.12453,571.33170 725.39656,569.22407 C 709.97641,565.01857 698.92989,578.50392 691.02292,586.41089 C 684.35819,593.07562 669.22800,590.10502 661.93754,593.02121 C 646.36521,599.25014 675.35654,606.24183 681.76848,606.24183 C 695.52283,603.59770 666.88983,620.78888 655.32722,630.03897 z " />
|
||||||
|
<path
|
||||||
|
id="path2275"
|
||||||
|
style="opacity:0.099999972;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 568.18750,644.40625 C 518.37924,710.56969 506.02168,802.87199 537.06122,879.72647 C 565.17301,951.33820 628.99006,1008.7189 704.04223,1026.5028 C 712.51780,1029.0206 719.09197,1020.9521 726.03285,1017.2641 C 727.81574,1014.6500 715.65768,1016.8206 711.70916,1015.0703 C 701.71784,1013.3284 690.39424,1009.0878 685.71875,999.34375 C 680.37898,988.30241 691.08569,979.31509 694.05637,969.35193 C 694.19270,966.36595 686.58063,973.68019 682.92103,973.77971 C 673.25451,976.30241 665.14979,968.17720 657.37784,963.68475 C 647.72164,957.44422 641.62953,944.16910 648.41304,933.67460 C 652.57168,928.29626 652.27474,923.55922 645.50063,920.97969 C 632.16569,911.68729 616.88199,901.45420 613.91617,884.16335 C 612.51081,873.38952 626.59067,867.62877 634.88882,872.84504 C 645.12373,875.88026 654.30336,881.42984 664.03125,885.68750 C 661.05661,878.45086 655.93602,868.03258 662.49324,861.47261 C 672.70468,855.90215 685.03357,857.03535 695.60779,852.16962 C 699.36902,850.54499 706.85772,849.57638 707.86265,846.15458 C 697.52178,826.86016 676.08045,813.01972 674.39657,789.58757 C 674.51617,784.46394 674.76014,777.60868 668.25153,776.59640 C 657.09561,771.36225 640.80599,768.33845 637.81250,754.31250 C 636.76895,747.02308 641.90199,739.97546 641.21549,733.14418 C 631.90553,718.11962 612.41351,717.54866 596.65625,716.78125 C 585.97091,715.62856 577.23505,705.95527 578.64709,695.00645 C 577.97458,682.52727 587.87342,673.19094 597.61348,667.14427 C 602.76479,663.79110 603.10126,657.23780 599.12859,652.86860 C 594.58339,643.95207 586.93084,636.87622 578.15625,632.18750 C 574.83333,636.26042 571.51042,640.33333 568.18750,644.40625 z " />
|
||||||
|
<path
|
||||||
|
id="path2277"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 919.37500,590.09375 C 898.29141,600.08693 884.72487,620.70788 874.20936,640.52866 C 873.54971,652.87632 858.98983,655.47392 849.25510,657.47334 C 839.33904,659.48865 825.10504,660.60223 823.10159,673.00100 C 820.88136,680.28952 820.24041,689.50025 827.00000,694.59375 C 831.74293,703.44393 821.30223,709.41807 814.53125,712.40625 C 807.43904,718.49610 813.62889,728.51152 812.31906,736.40610 C 813.44124,743.41168 807.01197,748.87655 806.62500,755.18750 C 809.61107,760.51338 816.32367,763.57831 821.93679,764.89706 C 830.40467,762.68375 833.71627,752.88257 838.43750,746.37500 C 846.31132,730.65509 848.73782,709.78081 865.89502,700.88085 C 872.80806,695.61900 880.86666,702.13224 881.56250,709.62500 C 881.77949,721.78476 883.24024,733.92725 883.36635,746.08849 C 883.80310,754.50241 879.13324,761.77081 877.90625,769.75000 C 883.21804,770.01381 891.15411,773.44787 889.40625,780.31250 C 886.43351,786.61567 878.54840,787.05580 873.03125,790.00000 C 875.05234,800.86303 871.24782,811.82104 864.88544,820.47050 C 860.45931,830.86159 857.52199,842.30876 850.12500,851.00000 C 860.60124,854.85022 872.97436,854.77049 883.35368,859.97934 C 892.19442,865.51028 905.29528,868.26033 908.62062,879.45184 C 910.35779,892.21800 899.28802,902.23593 897.81250,914.53125 C 908.27941,904.30020 924.25153,899.87559 931.73404,886.79806 C 937.15865,876.81953 925.91795,869.69951 921.46737,862.06510 C 913.55808,853.15402 914.91462,839.32929 923.13220,831.11574 C 927.95921,826.11871 933.93296,819.01026 941.68561,822.25164 C 955.22896,823.19276 970.88128,832.82483 969.53125,848.09375 C 968.83115,856.51118 963.23641,864.00746 963.81250,872.56250 C 968.83380,876.72366 970.77585,869.70056 970.01113,865.75989 C 972.99959,844.39633 971.01999,822.02173 978.25000,801.46875 C 986.01067,792.90788 997.96689,799.58417 1007.5857,799.80942 C 1013.0916,799.85509 1022.8492,805.04161 1020.5092,795.60079 C 1024.0741,718.78507 988.47279,641.54970 928.28591,593.81944 C 925.84158,591.81764 922.79052,588.51735 919.37500,590.09375 z " />
|
||||||
|
<path
|
||||||
|
id="path2279"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 716.03125,572.90625 C 702.00437,577.21624 695.15670,594.98492 679.18750,594.81250 C 671.16243,594.84622 667.23312,596.19819 677.48405,597.43962 C 682.27451,598.71366 689.80722,595.91811 690.87803,602.65496 C 692.32034,611.69758 681.43665,615.74735 675.74416,620.54906 C 669.86694,624.68076 663.92700,628.77405 658.71875,633.75000 C 661.15812,641.11726 670.07831,643.83205 676.71540,646.12510 C 685.40474,647.98036 695.16304,648.43926 703.50914,645.87681 C 710.54103,638.43112 709.02421,625.44226 718.57500,619.72268 C 725.09564,613.40123 736.48303,613.05725 741.56332,605.69198 C 742.94075,596.91328 740.18862,588.05072 741.90625,579.28125 C 737.78697,573.22676 728.89717,575.02229 722.62390,572.95074 C 720.44632,572.45909 718.23369,572.88570 716.03125,572.90625 z " />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,14 @@
|
||||||
|
iconsdir = $(pkgdatadir)/pixmaps/userlist
|
||||||
|
icons_DATA = idleaway.svg \
|
||||||
|
idle.svg \
|
||||||
|
away.svg \
|
||||||
|
friend.svg \
|
||||||
|
inhabitant.svg \
|
||||||
|
inhabitantplus.svg \
|
||||||
|
key.svg \
|
||||||
|
newbie.svg \
|
||||||
|
schooled.svg \
|
||||||
|
star.svg \
|
||||||
|
wizard.svg
|
||||||
|
|
||||||
|
EXTRA_DIST = $(icons_DATA)
|
After Width: | Height: | Size: 77 KiB |
|
@ -0,0 +1,301 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient3124"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.81666684"
|
||||||
|
cy="0.86111093"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.82222235"
|
||||||
|
fy="0.85555542"
|
||||||
|
id="radialGradient2957"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.98351645"
|
||||||
|
y1="0.98333335"
|
||||||
|
x2="0.23076923"
|
||||||
|
y2="0.17777778"
|
||||||
|
id="linearGradient2915"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient2952"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2946" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34615386"
|
||||||
|
y1="0.27222222"
|
||||||
|
x2="0.98901099"
|
||||||
|
y2="0.99444443"
|
||||||
|
id="linearGradient2913"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-100.0014,-48.29105)"
|
||||||
|
id="g983">
|
||||||
|
<path
|
||||||
|
d="M 124.36267 57.778187 A 7.7183714 7.7684908 0 1 0 108.92593,57.778187 A 7.7183714 7.7684908 0 1 0 124.36267 57.778187 z"
|
||||||
|
transform="matrix(1.198851,0.000000,0.000000,1.191107,-29.83768,-10.52891)"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2938" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.301979,0.000000,0.000000,1.301288,-41.35358,-17.98022)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.5865387;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1664" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2913);stroke-width:0.54178977;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2911" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.25333717;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2950" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.191763,0.000000,0.000000,1.184580,-28.54099,-11.13975)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2915);stroke-width:0.60939527;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2914" />
|
||||||
|
<path
|
||||||
|
d="M 123.79466 57.694656 A 5.7135997 5.6801867 0 1 0 112.36746,57.694656 A 5.7135997 5.6801867 0 1 0 123.79466 57.694656 z"
|
||||||
|
transform="matrix(1.211269,0.000000,0.000000,1.218512,-33.02644,-12.01050)"
|
||||||
|
style="fill:#ececf3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2924" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,-66.42380,-30.67413)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2957);stroke-width:0.25333717;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path2953" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.179335,0.000000,0.000000,1.179308,-27.09626,-10.83068)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient3124);stroke-width:0.21919590;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3123" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-118.01519"
|
||||||
|
y="33.943893"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect2958" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,7.024595,11.66249)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path2976" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,18.27460,11.66249)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3024" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,12.64960,17.28749)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3025" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,12.64960,6.037485)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3026" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-118.03284"
|
||||||
|
y="30.407104"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3028" />
|
||||||
|
<rect
|
||||||
|
width="1.0204378"
|
||||||
|
height="4.0817513"
|
||||||
|
x="31.261391"
|
||||||
|
y="-121.78556"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3029" />
|
||||||
|
<rect
|
||||||
|
width="1.0204381"
|
||||||
|
height="4.0817523"
|
||||||
|
x="31.276966"
|
||||||
|
y="-120.22436"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect3118" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(0.970462,0.000000,0.000000,0.970463,-2.877711,1.347242)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.64402282;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3120" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(-1.179335,0.000000,0.000000,-1.179308,247.0991,127.4130)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.21919590;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3122" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,432 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1351">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#44e704;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1352" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#1e5c1e;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1353" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1276">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1277" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1281" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1279" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1210">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1211" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffa619;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1212" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bb7200;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1213" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1206">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1207" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1208" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1209" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1115">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1116" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.062745102;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1117" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.18431373;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1118" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1119" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1100">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1101" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1102" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1103" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1104" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1048">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1049" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1050" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1051" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1052" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1042">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1043" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.12549020;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1044" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1045" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.74901962;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1046" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1035">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1036" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1037" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a44b3;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1038" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#111464;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1039" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1623">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1624" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1626" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bbbb00;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1625" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3172">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3173" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3174" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3152">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3153" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3154" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="-0.10416666"
|
||||||
|
y1="0.63157892"
|
||||||
|
x2="0.83333331"
|
||||||
|
y2="0.73026317"
|
||||||
|
id="linearGradient1123"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1005" />
|
||||||
|
<linearGradient
|
||||||
|
x1="1.1037736"
|
||||||
|
y1="0.55921054"
|
||||||
|
x2="0.71698111"
|
||||||
|
y2="0.53947371"
|
||||||
|
id="linearGradient1129"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="-0.20754717"
|
||||||
|
y1="0.57894737"
|
||||||
|
x2="0.32075471"
|
||||||
|
y2="0.54605263"
|
||||||
|
id="linearGradient1131"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.011428571"
|
||||||
|
y1="0.50000000"
|
||||||
|
x2="1.0085714"
|
||||||
|
y2="0.50000000"
|
||||||
|
id="linearGradient1133"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1005" />
|
||||||
|
<linearGradient
|
||||||
|
x1="-0.020000000"
|
||||||
|
y1="0.46875000"
|
||||||
|
x2="0.28857142"
|
||||||
|
y2="0.46875000"
|
||||||
|
id="linearGradient1135"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="-0.020000000"
|
||||||
|
y1="0.44000000"
|
||||||
|
x2="0.29714286"
|
||||||
|
y2="0.44000000"
|
||||||
|
id="linearGradient1137"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata4">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF5">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work6">
|
||||||
|
<dc:format
|
||||||
|
id="format7">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type9"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 3.1250000,3.0000000e-06 L 3.1250000,4.7337310 L 4.2091400,7.9053280 L 5.2932700,19.905328 L 14.891830,20.000003 L 15.790860,7.9526660 L 16.875000,4.7337310 L 16.875000,3.0000000e-06 L 3.1250000,3.0000000e-06 z "
|
||||||
|
style="fill:url(#linearGradient1123);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:0.69542289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1074" />
|
||||||
|
<path
|
||||||
|
d="M 4.3750000,3.0000000e-06 L 4.3750000,4.4378730 L 5.2620200,7.4112450 L 6.1490400,18.661245 L 14.002410,18.750003 L 14.737980,7.4556240 L 15.625000,4.4378730 L 15.625000,3.0000000e-06 L 4.3750000,3.0000000e-06 z "
|
||||||
|
style="fill:#f8e519;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.69542289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1126" />
|
||||||
|
<rect
|
||||||
|
width="11.250000"
|
||||||
|
height="5.0000000"
|
||||||
|
x="4.3750000"
|
||||||
|
y="2.6171874e-06"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1121" />
|
||||||
|
<path
|
||||||
|
d="M 16.875000,3.0000000e-06 L 16.875000,4.7337310 L 15.790860,7.9053280 L 14.706730,19.905328 L 5.1081700,20.000003 L 4.2091400,7.9526660 L 3.1250000,4.7337310 L 3.1250000,3.0000000e-06 L 16.875000,3.0000000e-06 z "
|
||||||
|
style="fill:url(#linearGradient1129);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:0.69542289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1128" />
|
||||||
|
<path
|
||||||
|
d="M 16.875000,3.0000000e-06 L 16.875000,4.7337310 L 15.790860,7.9053280 L 14.706730,19.905328 L 5.1081700,20.000003 L 4.2091400,7.9526660 L 3.1250000,4.7337310 L 3.1250000,3.0000000e-06 L 16.875000,3.0000000e-06 z "
|
||||||
|
style="fill:url(#linearGradient1131);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:0.69542289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1130" />
|
||||||
|
<rect
|
||||||
|
width="13.750000"
|
||||||
|
height="1.2500000"
|
||||||
|
x="3.1250000"
|
||||||
|
y="2.6171874e-06"
|
||||||
|
style="fill:url(#linearGradient1133);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1132" />
|
||||||
|
<rect
|
||||||
|
width="13.750000"
|
||||||
|
height="1.2500000"
|
||||||
|
x="3.1250000"
|
||||||
|
y="2.6171874e-06"
|
||||||
|
style="fill:url(#linearGradient1135);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1134" />
|
||||||
|
<rect
|
||||||
|
width="8.7500000"
|
||||||
|
height="1.2500000"
|
||||||
|
x="5.6250000"
|
||||||
|
y="18.750002"
|
||||||
|
style="fill:url(#linearGradient1137);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1136" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,186 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 3.7499495,0.69047613 C 2.7564195,0.70692713 1.9539395,1.5148171 1.9374495,2.5057001 L 1.8749495,2.5057001 L 1.8749495,12.520733 L 1.9374495,12.520733 C 1.9372795,12.531081 1.9374495,12.541642 1.9374495,12.552031 C 1.9374495,13.557377 2.7458095,14.382204 3.7499495,14.398553 C 3.7601495,14.398718 3.7709595,14.398553 3.7811995,14.398553 L 17.499950,14.398553 L 17.499950,14.304661 C 18.478900,14.288451 19.242330,13.491474 19.281200,12.520733 L 19.374950,12.520733 L 19.374950,2.5057001 L 19.312450,2.5057001 C 19.295950,1.5148141 18.493470,0.70692713 17.499950,0.69047613 L 17.499950,0.62788213 L 3.7499495,0.69047613 z "
|
||||||
|
style="fill:#e7e7e7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1582" />
|
||||||
|
<path
|
||||||
|
d="M 4.9081495,9.4541103 C 4.9081495,9.0620203 4.9081495,8.6699303 4.9081495,8.2778403 C 5.8332495,7.2249683 6.7382695,6.1541593 7.6813095,5.1172891 C 8.0169095,4.8586881 7.4112895,5.0277891 7.2366095,4.9892221 C 6.5302895,4.9951521 5.8239495,4.9971101 5.1176295,5.0014731 C 5.1176295,4.5843181 5.1176295,4.1671631 5.1176295,3.7500081 C 6.6895695,3.7500081 8.2615095,3.7500081 9.8334495,3.7500081 C 9.8334495,4.1062911 9.8334495,4.4625731 9.8334495,4.8188561 C 9.0552495,5.7093271 8.2899695,6.6113433 7.5034595,7.4943773 C 7.2972095,7.7179343 7.0909595,7.9414913 6.8847195,8.1650473 C 7.8341295,8.0994263 8.7862995,8.1376173 9.7371495,8.1274493 C 9.8215195,8.1551413 10.029060,8.0596733 9.9999495,8.2008523 C 9.9999495,8.6186043 9.9999495,9.0363573 9.9999495,9.4541103 C 8.3026795,9.4541103 6.6054195,9.4541103 4.9081495,9.4541103 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text1516" />
|
||||||
|
<path
|
||||||
|
d="M 11.158150,10.704110 C 11.158150,10.312020 11.158150,9.9199303 11.158150,9.5278403 C 12.083250,8.4749683 12.988270,7.4041593 13.931310,6.3672893 C 14.266910,6.1086881 13.661290,6.2777893 13.486610,6.2392223 C 12.780290,6.2451523 12.073950,6.2471103 11.367630,6.2514733 C 11.367630,5.8343181 11.367630,5.4171631 11.367630,5.0000081 C 12.939570,5.0000081 14.511510,5.0000081 16.083450,5.0000081 C 16.083450,5.3562911 16.083450,5.7125731 16.083450,6.0688561 C 15.305250,6.9593273 14.539970,7.8613433 13.753460,8.7443773 C 13.547210,8.9679343 13.340960,9.1914913 13.134720,9.4150473 C 14.084130,9.3494263 15.036300,9.3876173 15.987150,9.3774493 C 16.071520,9.4051413 16.279060,9.3096733 16.249950,9.4508523 C 16.249950,9.8686043 16.249950,10.286357 16.249950,10.704110 C 14.552680,10.704110 12.855420,10.704110 11.158150,10.704110 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text1519" />
|
||||||
|
<path
|
||||||
|
d="M 4.2186995,13.158392 L 16.249950,13.158392 C 18.102860,13.220066 18.045960,12.334051 18.062450,11.343168 L 18.124950,3.0468851"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#bfbfbf;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1635" />
|
||||||
|
<path
|
||||||
|
d="M 7.0812795,13.750031 C 7.1032495,14.791984 2.9365195,13.841465 2.9561295,13.593936 C 2.9757395,13.346408 3.0378995,13.102543 3.1366995,12.875715 C 3.3343095,12.422061 3.6784995,12.036557 4.1221295,11.826198 C 4.9949595,11.370192 6.1499895,11.679048 6.7002495,12.514711 C 6.9476195,12.872340 7.0825695,13.310386 7.0812795,13.750031 z "
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:3.2805939;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1616" />
|
||||||
|
<path
|
||||||
|
d="M 228.70486 67.715950 A 2.5411651 2.5411651 0 1 0 223.62253,67.715950 A 2.5411651 2.5411651 0 1 0 228.70486 67.715950 z"
|
||||||
|
transform="matrix(0.545196,0.000000,0.000000,0.545198,-121.4181,-18.80404)"
|
||||||
|
style="fill:#e7e7e7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.8341994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1615" />
|
||||||
|
<path
|
||||||
|
d="M 228.70486 67.715950 A 2.5411651 2.5411651 0 1 0 223.62253,67.715950 A 2.5411651 2.5411651 0 1 0 228.70486 67.715950 z"
|
||||||
|
transform="matrix(0.741589,0.000000,0.000000,0.743692,-162.7301,-36.62463)"
|
||||||
|
style="fill:#e7e7e7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.6831849;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1617" />
|
||||||
|
<path
|
||||||
|
d="M 17.031200,1.9376041 L 4.9999495,1.9376041 C 3.1470395,1.8759301 3.2039395,2.7619451 3.1874495,3.7528281 L 3.1249495,10.720986"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.2500000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1620" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 9.7 KiB |
|
@ -0,0 +1,314 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient3124"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.81666684"
|
||||||
|
cy="0.86111093"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.82222235"
|
||||||
|
fy="0.85555542"
|
||||||
|
id="radialGradient2957"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2954" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.98351645"
|
||||||
|
y1="0.98333335"
|
||||||
|
x2="0.23076923"
|
||||||
|
y2="0.17777778"
|
||||||
|
id="linearGradient2915"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.19444431"
|
||||||
|
cy="0.22777788"
|
||||||
|
r="0.63335794"
|
||||||
|
fx="0.18888874"
|
||||||
|
fy="0.21666677"
|
||||||
|
id="radialGradient2952"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2946" />
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34615386"
|
||||||
|
y1="0.27222222"
|
||||||
|
x2="0.98901099"
|
||||||
|
y2="0.99444443"
|
||||||
|
id="linearGradient2913"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.870990,0.000000,0.000000,0.874807,-179.5880,-31.53432)"
|
||||||
|
style="stroke-linecap:round;stroke-linejoin:round;"
|
||||||
|
id="g842">
|
||||||
|
<path
|
||||||
|
d="M 124.36267 57.778187 A 7.7183714 7.7684908 0 1 0 108.92593,57.778187 A 7.7183714 7.7684908 0 1 0 124.36267 57.778187 z"
|
||||||
|
transform="matrix(1.198851,0.000000,0.000000,1.191107,79.31174,-20.62342)"
|
||||||
|
style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path824" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.301979,0.000000,0.000000,1.301288,67.79584,-28.07474)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#f8e519;stroke-width:1.5865387;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path825" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2913);stroke-width:0.54178977;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path826" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.25333717;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path827" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.191763,0.000000,0.000000,1.184580,80.60843,-21.23427)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2915);stroke-width:0.60939527;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path828" />
|
||||||
|
<path
|
||||||
|
d="M 123.79466 57.694656 A 5.7135997 5.6801867 0 1 0 112.36746,57.694656 A 5.7135997 5.6801867 0 1 0 123.79466 57.694656 z"
|
||||||
|
transform="matrix(1.211269,0.000000,0.000000,1.218512,76.12298,-22.10502)"
|
||||||
|
style="fill:#ececf3;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path829" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.517637,0.000000,0.000000,1.517862,42.72562,-40.76865)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2957);stroke-width:0.25333717;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path830" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(1.179335,0.000000,0.000000,1.179308,82.05316,-20.92520)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient3124);stroke-width:0.21919590;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path831" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-184.82507"
|
||||||
|
y="115.64051"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect832" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,116.1740,1.567967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path833" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,127.4240,1.567967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path834" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,121.7990,7.192967)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path835" />
|
||||||
|
<path
|
||||||
|
d="M 116.57747 61.269833 A 0.15035789 0.16706431 0 1 0 116.27676,61.269833 A 0.15035789 0.16706431 0 1 0 116.57747 61.269833 z"
|
||||||
|
transform="matrix(0.836155,0.000000,0.000000,0.761026,121.7990,-4.057033)"
|
||||||
|
style="fill:#ff0000;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-opacity:1.0000000;"
|
||||||
|
id="path836" />
|
||||||
|
<rect
|
||||||
|
width="1.0204374"
|
||||||
|
height="4.0817494"
|
||||||
|
x="-184.84271"
|
||||||
|
y="112.10372"
|
||||||
|
transform="matrix(-0.734981,-0.678088,0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect837" />
|
||||||
|
<rect
|
||||||
|
width="1.0204378"
|
||||||
|
height="4.0817513"
|
||||||
|
x="112.95801"
|
||||||
|
y="-188.59544"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect838" />
|
||||||
|
<rect
|
||||||
|
width="1.0204381"
|
||||||
|
height="4.0817523"
|
||||||
|
x="112.97358"
|
||||||
|
y="-187.03423"
|
||||||
|
transform="matrix(0.734981,-0.678088,-0.734981,-0.678088,0.000000,0.000000)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.42491827pt;stroke-opacity:1.0000000;"
|
||||||
|
id="rect839" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(0.970462,0.000000,0.000000,0.970463,106.2717,-8.747276)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.64402282;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path840" />
|
||||||
|
<path
|
||||||
|
d="M 122.50000 58.612183 A 6.2500000 6.2500000 0 1 0 110.00000,58.612183 A 6.2500000 6.2500000 0 1 0 122.50000 58.612183 z"
|
||||||
|
transform="matrix(-1.179335,0.000000,0.000000,-1.179308,356.2486,117.3184)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#radialGradient2952);stroke-width:0.21919590;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path841" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
d="M 8.3354651,4.4211148 C 8.5569944,5.1059582 8.7834603,5.7956727 8.8937870,6.5088281 C 8.7560403,5.3737095 8.8687557,4.2233891 9.0197197,3.0952896 C 8.0225194,4.1700147 7.0944412,5.3063488 6.1271889,6.4077896 C 6.1782268,6.7788595 6.0238789,7.3562929 6.2063733,7.5952896 C 7.8698833,7.5952896 9.5333834,7.5952896 11.196893,7.5952896 C 11.135146,7.1775163 11.322378,6.5072977 11.099973,6.2524280 C 10.095577,6.2599689 9.0899267,6.2174400 8.0866452,6.2827896 C 9.0152310,5.2944373 9.9301018,4.2929446 10.821454,3.2704959 C 10.447219,3.3424473 10.102723,3.5931982 9.7475078,3.7522748 C 9.2825033,3.9867014 8.8198775,4.2289247 8.3354651,4.4211148 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ff0000;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:2.4940922;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text818" />
|
||||||
|
<path
|
||||||
|
d="M -1.7763568e-15,6.3306406 C -1.7763568e-15,5.9385506 -1.7763568e-15,5.5464606 -1.7763568e-15,5.1543716 C 0.96806847,4.0519846 1.9049449,2.9211866 2.9027424,1.8457776 C 2.0052591,1.8832936 1.1065616,1.8673056 0.20849113,1.8780036 C 0.20849113,1.4608496 0.20849113,1.0436946 0.20849113,0.62653957 C 1.7730107,0.62653957 3.3375302,0.62653957 4.9020497,0.62653957 C 4.9020497,0.98282157 4.9020497,1.3391046 4.9020497,1.6953866 C 3.9254218,2.8122656 2.9819168,3.9589156 1.9672394,5.0415786 C 2.9993143,4.9741756 4.0342457,5.0152336 5.0677637,5.0039806 C 5.0677637,5.4462006 5.0677637,5.8884206 5.0677637,6.3306406 C 3.3785058,6.3306406 1.6892579,6.3306406 -1.7763568e-15,6.3306406 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text821" />
|
||||||
|
<path
|
||||||
|
d="M 6.2204963,7.5806406 C 6.2204963,7.1885506 6.2204963,6.7964606 6.2204963,6.4043716 C 7.1885648,5.3019846 8.1254412,4.1711866 9.1232387,3.0957776 C 8.2257554,3.1332936 7.3270579,3.1173056 6.4289875,3.1280036 C 6.4289875,2.7108496 6.4289875,2.2936946 6.4289875,1.8765396 C 7.9935070,1.8765396 9.5580265,1.8765396 11.122546,1.8765396 C 11.122546,2.2328216 11.122546,2.5891046 11.122546,2.9453866 C 10.145918,4.0622656 9.2024132,5.2089156 8.1877358,6.2915786 C 9.2198107,6.2241756 10.254742,6.2652336 11.288260,6.2539806 C 11.288260,6.6962006 11.288260,7.1384206 11.288260,7.5806406 C 9.5990022,7.5806406 7.9097542,7.5806406 6.2204963,7.5806406 z "
|
||||||
|
style="font-size:11.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;"
|
||||||
|
id="text870" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,114 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="0.29298297"
|
||||||
|
y1="0.23977646"
|
||||||
|
x2="0.62951213"
|
||||||
|
y2="0.86258322"
|
||||||
|
id="linearGradient1252"
|
||||||
|
xlink:href="#linearGradient1243" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<Work
|
||||||
|
about=""
|
||||||
|
id="Work1119">
|
||||||
|
<format
|
||||||
|
id="format1120">image/svg+xml</format>
|
||||||
|
<type
|
||||||
|
id="type1122"
|
||||||
|
resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</Work>
|
||||||
|
</RDF>
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1034">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1035">
|
||||||
|
<dc:format
|
||||||
|
id="format1036">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1038"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(1.059916,-0.275504,0.284004,1.028195,-203.6913,-0.166886)"
|
||||||
|
style="fill:#769abe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;"
|
||||||
|
id="path1399" />
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(0.847932,-0.220404,0.227204,0.822555,-160.9527,1.625846)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1252);stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1400" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,108 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="0.29298297"
|
||||||
|
y1="0.23977646"
|
||||||
|
x2="0.62951213"
|
||||||
|
y2="0.86258322"
|
||||||
|
id="linearGradient1252"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1243" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(1.059916,-0.275504,0.284004,1.028195,-203.6913,-0.166886)"
|
||||||
|
style="fill:#769abe;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;"
|
||||||
|
id="path1399" />
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(0.847932,-0.220404,0.227204,0.822555,-160.9527,1.625846)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1252);stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1400" />
|
||||||
|
<path
|
||||||
|
d="M 191.63699,67.494974 L 186.23800,64.595877 L 180.78903,67.399890 L 181.87785,61.369279 L 177.52725,57.053485 L 183.59917,56.225459 L 186.35933,50.754139 L 189.02315,56.273001 L 195.07962,57.207334 L 190.65404,61.446204 L 191.63699,67.494974 z "
|
||||||
|
transform="matrix(0.317976,-8.265093e-2,8.520083e-2,0.308459,-54.03724,6.514604)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:4.1666641;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1276" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,415 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1351">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#44e704;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1352" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#1e5c1e;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1353" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1276">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1277" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1281" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1279" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1210">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1211" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffa619;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1212" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bb7200;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1213" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1206">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1207" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1208" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1209" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1115">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1116" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.062745102;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1117" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.18431373;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1118" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1119" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1100">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1101" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1102" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1103" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1104" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1048">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1049" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1050" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1051" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1052" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1042">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1043" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.12549020;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1044" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1045" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.74901962;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1046" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1035">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1036" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1037" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a44b3;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1038" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#111464;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1039" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1623">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1624" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1626" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bbbb00;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1625" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3172">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3173" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3174" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3152">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3153" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3154" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="-1.1449175e-16"
|
||||||
|
y1="0.50000000"
|
||||||
|
x2="1.0000000"
|
||||||
|
y2="0.50000000"
|
||||||
|
id="linearGradient1083"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175" />
|
||||||
|
<linearGradient
|
||||||
|
x1="3.2612801e-15"
|
||||||
|
y1="0.50000000"
|
||||||
|
x2="1.0000000"
|
||||||
|
y2="0.50000000"
|
||||||
|
id="linearGradient1084"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175" />
|
||||||
|
<linearGradient
|
||||||
|
x1="1.0560997e-14"
|
||||||
|
y1="0.50000000"
|
||||||
|
x2="1.0000000"
|
||||||
|
y2="0.50000000"
|
||||||
|
id="linearGradient1085"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175" />
|
||||||
|
<linearGradient
|
||||||
|
x1="-1.0624939"
|
||||||
|
y1="-0.74989635"
|
||||||
|
x2="-0.43110916"
|
||||||
|
y2="-0.73004663"
|
||||||
|
id="linearGradient1087"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175"
|
||||||
|
gradientTransform="matrix(-1.174076,1.573924e-2,8.270293e-2,-0.852842,-1.179612e-16,-6.473988e-15)" />
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata4">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF5">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work6">
|
||||||
|
<dc:format
|
||||||
|
id="format7">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type9"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<rect
|
||||||
|
width="1.4153235"
|
||||||
|
height="16.106644"
|
||||||
|
x="13.215102"
|
||||||
|
y="-3.6870356"
|
||||||
|
transform="matrix(0.707107,0.707107,-0.707107,0.707107,0.000000,0.000000)"
|
||||||
|
style="fill:url(#linearGradient1084);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1077" />
|
||||||
|
<path
|
||||||
|
d="M 293.22835 52.745213 A 4.4194174 3.3698058 0 1 0 284.38951,52.745213 A 4.4194174 3.3698058 0 1 0 293.22835 52.745213 z"
|
||||||
|
transform="matrix(0.613545,0.613545,-0.651541,0.651541,-127.5683,-207.1369)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.0969698;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1076" />
|
||||||
|
<path
|
||||||
|
d="M 293.22835 52.745213 A 4.4194174 3.3698058 0 1 0 284.38951,52.745213 A 4.4194174 3.3698058 0 1 0 293.22835 52.745213 z"
|
||||||
|
transform="matrix(0.613545,0.613545,-0.651541,0.651541,-127.5911,-207.2619)"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1083);stroke-width:1.5377779;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1089" />
|
||||||
|
<rect
|
||||||
|
width="1.4153264"
|
||||||
|
height="2.9310091"
|
||||||
|
x="-9.0651045"
|
||||||
|
y="14.978394"
|
||||||
|
transform="matrix(0.707107,-0.707107,0.707107,0.707107,0.000000,0.000000)"
|
||||||
|
style="fill:url(#linearGradient1087);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.33259907pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1078" />
|
||||||
|
<rect
|
||||||
|
width="1.4686625"
|
||||||
|
height="2.0691783"
|
||||||
|
x="8.2835970"
|
||||||
|
y="-17.159742"
|
||||||
|
transform="matrix(-0.689574,0.724215,-0.668650,-0.743577,0.000000,0.000000)"
|
||||||
|
style="fill:url(#linearGradient1085);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.28467178pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1080" />
|
||||||
|
<rect
|
||||||
|
width="1.3760998"
|
||||||
|
height="2.8497746"
|
||||||
|
x="-8.2051229"
|
||||||
|
y="15.313398"
|
||||||
|
transform="matrix(0.727320,-0.686299,0.727320,0.686299,0.000000,0.000000)"
|
||||||
|
style="fill:url(#linearGradient1087);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.32338102pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="rect1093" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,110 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 5.6024550,5.8992082 L 5.6024550,16.720614 L 17.799951,16.720614 L 17.799951,14.517686 C 18.642953,13.928521 19.324638,12.982768 19.324638,11.657742 C 19.324638,10.332716 18.642953,9.4256112 17.799951,8.8364462 L 17.799951,5.8992082 L 5.6024550,5.8992082 z "
|
||||||
|
style="fill:#44e704;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path1329" />
|
||||||
|
<path
|
||||||
|
d="M 310.68503,54.236767 C 311.27106,54.831541 310.17241,55.320161 309.69647,55.210784 C 308.40672,54.914378 308.21130,53.258102 308.73699,52.259661 C 309.67734,50.473683 312.08630,50.281482 313.65069,51.314716 C 315.94650,52.831027 316.13664,56.079643 314.58110,58.190979 C 312.50780,61.005059 308.39379,61.191022 305.74226,59.106852 C 302.40559,56.484138 302.22487,51.493943 304.84093,48.305448 C 308.00932,44.443754 313.88125,44.268817 317.60490,47.418647 C 320.07424,49.507459 321.35017,52.753471 321.08983,55.963815"
|
||||||
|
transform="matrix(1.015408,0.000000,0.000000,1.046821,-306.9678,-45.92515)"
|
||||||
|
style="fill:#44e704;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.4399315;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1330" />
|
||||||
|
<path
|
||||||
|
d="M 19.391341,12.983581 C 17.009041,15.301132 20.519011,16.092121 17.782246,17.074763 L 8.8693068,17.168538"
|
||||||
|
style="fill:#44e704;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2282115;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1331" />
|
||||||
|
<path
|
||||||
|
d="M 7.6036177,10.640254 C 6.2693604,8.5099522 9.6443859,7.9109192 10.129759,8.4977562 M 4.1615614,14.971187 C 2.4580597,13.481965 1.4553061,12.047713 1.6437322,9.4915422 C 1.7722789,6.7292222 3.6541491,4.4305522 6.1081613,3.2933912 C 9.3879471,1.6983032 13.191789,2.7460062 15.602060,5.5145812"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.2449100;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1333" />
|
||||||
|
<path
|
||||||
|
d="M 14.521722,10.496187 C 15.061797,12.958370 14.510891,13.730650 13.378033,15.535256"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.2449100;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1334" />
|
||||||
|
<path
|
||||||
|
d="M 11.957612,10.334997 C 13.306281,12.911391 10.194846,17.157833 6.9057658,16.055205"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#1e5c1e;stroke-width:1.2449100;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1335" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,201 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.29884115"
|
||||||
|
cy="0.31566316"
|
||||||
|
r="0.37779850"
|
||||||
|
fx="0.30547899"
|
||||||
|
fy="0.30235189"
|
||||||
|
id="radialGradient1210"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1105" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.36492822"
|
||||||
|
cy="0.36232752"
|
||||||
|
r="0.65115207"
|
||||||
|
fx="0.37136021"
|
||||||
|
fy="0.35577169"
|
||||||
|
id="radialGradient1015"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient2907" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
cx="0.37594351"
|
||||||
|
cy="0.41496417"
|
||||||
|
r="0.54327917"
|
||||||
|
fx="0.38247278"
|
||||||
|
fy="0.39534050"
|
||||||
|
id="radialGradient1004"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1005" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path
|
||||||
|
d="M 358.52524 59.871521 A 5.1375728 4.6403885 0 1 0 348.25009,59.871521 A 5.1375728 4.6403885 0 1 0 358.52524 59.871521 z"
|
||||||
|
transform="matrix(1.105911,0.000000,0.000000,1.224354,-384.5647,-65.95213)"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.97714454;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1850" />
|
||||||
|
<path
|
||||||
|
d="M 358.52524 59.871521 A 5.1375728 4.6403885 0 1 0 348.25009,59.871521 A 5.1375728 4.6403885 0 1 0 358.52524 59.871521 z"
|
||||||
|
transform="matrix(1.105911,0.000000,0.000000,1.224354,-384.5651,-65.95214)"
|
||||||
|
style="fill:url(#radialGradient1004);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.97714454;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1318" />
|
||||||
|
<path
|
||||||
|
d="M 354.65826 61.363075 A 1.9334952 1.9334952 0 1 0 350.79127,61.363075 A 1.9334952 1.9334952 0 1 0 354.65826 61.363075 z"
|
||||||
|
transform="matrix(0.976755,0.000000,0.000000,0.978381,-339.5254,-51.43144)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6497c9;stroke-width:1.2511200;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.74901962;"
|
||||||
|
id="path1320" />
|
||||||
|
<g
|
||||||
|
transform="matrix(0.868224,-0.501269,0.500000,0.866025,-351.5901,112.9847)"
|
||||||
|
id="g1359">
|
||||||
|
<path
|
||||||
|
d="M 360.29300 66.555893 A 2.5411651 2.3754368 0 1 0 355.21067,66.555893 A 2.5411651 2.3754368 0 1 0 360.29300 66.555893 z"
|
||||||
|
transform="matrix(1.469920,0.000000,0.000000,1.300493,-168.3633,7.042330)"
|
||||||
|
style="fill:url(#radialGradient1015);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93501318;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1355" />
|
||||||
|
<path
|
||||||
|
d="M 204.17709 91.083618 A 9.3912621 9.6674757 0 1 0 185.39457,91.083618 A 9.3912621 9.6674757 0 1 0 204.17709 91.083618 z"
|
||||||
|
transform="matrix(0.398204,0.000000,0.000000,0.322125,279.9459,64.25723)"
|
||||||
|
style="fill:url(#radialGradient1210);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:3.5494294;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1358" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
d="M 358.52524 59.871521 A 5.1375728 4.6403885 0 1 0 348.25009,59.871521 A 5.1375728 4.6403885 0 1 0 358.52524 59.871521 z"
|
||||||
|
transform="matrix(1.105911,0.000000,0.000000,1.224354,-377.0647,-60.95213)"
|
||||||
|
style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.97714454;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1852" />
|
||||||
|
<path
|
||||||
|
d="M 358.52524 59.871521 A 5.1375728 4.6403885 0 1 0 348.25009,59.871521 A 5.1375728 4.6403885 0 1 0 358.52524 59.871521 z"
|
||||||
|
transform="matrix(1.105867,0.000000,0.000000,1.224354,-377.0494,-60.95212)"
|
||||||
|
style="fill:url(#radialGradient1004);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.97714454;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path1317" />
|
||||||
|
<path
|
||||||
|
d="M 354.65826 61.363075 A 1.9334952 1.9334952 0 1 0 350.79127,61.363075 A 1.9334952 1.9334952 0 1 0 354.65826 61.363075 z"
|
||||||
|
transform="matrix(0.954700,0.000000,0.000000,0.976928,-324.1960,-47.58852)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#6497c9;stroke-width:1.2511200;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.74901962;"
|
||||||
|
id="path1319" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 8.1 KiB |
|
@ -0,0 +1,91 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1114">
|
||||||
|
<defs
|
||||||
|
id="defs1116">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata1117">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF1118">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work1119">
|
||||||
|
<dc:format
|
||||||
|
id="format1120">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type1122"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-151.2566,-49.86218)"
|
||||||
|
id="g1377">
|
||||||
|
<path
|
||||||
|
d="M 160.84388,50.490043 C 158.16790,50.607034 155.52869,51.913796 153.86691,54.004251 C 157.45375,52.080542 158.50627,52.653172 160.12104,52.977978 C 160.86422,53.127465 163.25726,54.277849 163.89118,55.881845 C 164.44124,57.273597 164.02091,59.870049 159.76237,59.970876 C 159.96760,60.393148 161.76806,62.282017 163.52565,62.504815 C 161.80296,62.175187 161.30797,61.505315 161.06552,62.555345 C 159.91356,65.304460 156.01932,64.361159 154.18119,62.991916 C 151.28451,60.834154 151.76944,59.476556 152.23266,62.618726 C 153.41643,66.588716 157.52250,69.541709 161.72386,69.211754 C 166.19724,68.947948 170.27361,65.227410 170.58651,60.752775 C 171.00591,56.321977 167.93122,51.790379 163.48382,50.801035 C 162.61590,50.567918 161.73588,50.451046 160.84388,50.490043 z "
|
||||||
|
style="fill:#f8e519;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0004182pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;"
|
||||||
|
id="path3252" />
|
||||||
|
<path
|
||||||
|
d="M 166.61204 58.131374 A 0.69053400 0.69053400 0 1 0 165.23097,58.131374 A 0.69053400 0.69053400 0 1 0 166.61204 58.131374 z"
|
||||||
|
transform="matrix(0.854362,0.299031,-0.598008,1.708568,58.72609,-89.02283)"
|
||||||
|
style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
|
||||||
|
id="path3306" />
|
||||||
|
<path
|
||||||
|
d="M 160.30313,51.762937 C 162.67464,52.048938 164.82819,53.916044 165.30032,55.739755 C 165.83329,57.798468 165.04335,59.948930 162.49733,60.767913 M 162.14320,63.462867 C 160.32833,66.156740 157.92945,66.184563 154.96762,64.962559"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3312" />
|
||||||
|
<path
|
||||||
|
d="M 157.88800,67.113969 C 159.23750,67.935124 160.30522,67.794525 160.97104,67.961754 C 165.44442,67.697948 169.48581,64.602669 169.22602,59.392290 C 169.14588,57.784788 167.95180,54.462612 165.60363,53.197054"
|
||||||
|
style="fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#bbbb00;stroke-width:1.0004182pt;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1.0000000;"
|
||||||
|
id="path3313" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.3 KiB |
|
@ -0,0 +1,383 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
version="1.0"
|
||||||
|
x="0.0000000"
|
||||||
|
y="0.0000000"
|
||||||
|
width="20.000000"
|
||||||
|
height="20.000000"
|
||||||
|
id="svg1">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1351">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#44e704;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1352" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#1e5c1e;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1353" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1276">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1277" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1281" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#04ff00;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1279" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1243">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1244" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#5f8ebe;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1245" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a5775;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1246" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1210">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1211" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffa619;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1212" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bb7200;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1213" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1206">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1207" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1208" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1209" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1115">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1116" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.062745102;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1117" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.18431373;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1118" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1119" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1105">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1106" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1110" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1109" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1100">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1101" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1102" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1103" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1104" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1048">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1049" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.74901962;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1050" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.25098041;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1051" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1052" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1042">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1043" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.12549020;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1044" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.37254903;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1045" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.74901962;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1046" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1035">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1036" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#8aa2fc;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1037" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#3a44b3;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1038" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#111464;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1039" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1005">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1006" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.34999999"
|
||||||
|
id="stop1009" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bfbfbf;stop-opacity:1.0000000;"
|
||||||
|
offset="0.69999999"
|
||||||
|
id="stop1008" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1007" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient1623">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop1624" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop1626" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#bbbb00;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop1625" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3176" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#7f7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3178" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3177" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3172">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3173" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3174" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3165">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3166" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff7f7f;stop-opacity:1.0000000;"
|
||||||
|
offset="0.25000000"
|
||||||
|
id="stop3180" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.50000000"
|
||||||
|
id="stop3168" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ff0000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.75000000"
|
||||||
|
id="stop3169" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3167" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3152">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop3153" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop3154" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2954">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2955" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2956" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2946">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2947" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2948" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2907">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffff19;stop-opacity:1.0000000;"
|
||||||
|
offset="0.0000000"
|
||||||
|
id="stop2908" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#705319;stop-opacity:1.0000000;"
|
||||||
|
offset="1.0000000"
|
||||||
|
id="stop2909" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
x1="0.34868422"
|
||||||
|
y1="0.74342108"
|
||||||
|
x2="0.11184210"
|
||||||
|
y2="0.50000000"
|
||||||
|
id="linearGradient3149"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175"
|
||||||
|
spreadMethod="pad" />
|
||||||
|
<linearGradient
|
||||||
|
x1="-0.18888889"
|
||||||
|
y1="0.25000000"
|
||||||
|
x2="0.92222220"
|
||||||
|
y2="0.84210527"
|
||||||
|
id="linearGradient3164"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3165" />
|
||||||
|
<radialGradient
|
||||||
|
cx="0.29651532"
|
||||||
|
cy="0.44973168"
|
||||||
|
r="0.44808188"
|
||||||
|
fx="0.30226764"
|
||||||
|
fy="0.45367077"
|
||||||
|
id="radialGradient3179"
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3175" />
|
||||||
|
</defs>
|
||||||
|
<metadata
|
||||||
|
id="metadata4">
|
||||||
|
<rdf:RDF
|
||||||
|
id="RDF5">
|
||||||
|
<cc:Work
|
||||||
|
rdf:about=""
|
||||||
|
id="Work6">
|
||||||
|
<dc:format
|
||||||
|
id="format7">image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
id="type9"
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.990854,0.000000,0.000000,0.990711,-126.3339,-47.97486)"
|
||||||
|
id="g1373">
|
||||||
|
<path
|
||||||
|
d="M 133.28125 64.998901 A 2.9296875 1.6210938 0 1 0 127.42188,64.998901 A 2.9296875 1.6210938 0 1 0 133.28125 64.998901 z"
|
||||||
|
transform="matrix(2.295720,1.768142,-0.610189,0.792257,-124.9777,-219.0142)"
|
||||||
|
style="fill:url(#radialGradient3179);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.36715820;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3144" />
|
||||||
|
<path
|
||||||
|
d="M 130.77344,59.440308 L 133.07812,58.463746 L 144.87500,48.737183 L 147.37500,51.237183 L 144.99219,49.909055 L 139.13281,62.819212 L 138.78125,65.299681 C 138.78125,65.338743 134.13281,64.518435 130.77344,59.440308 z "
|
||||||
|
style="fill:url(#linearGradient3149);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3147" />
|
||||||
|
<path
|
||||||
|
d="M 134.51247,56.782032 L 133.03487,58.012331 C 134.15310,60.486423 137.37121,62.433195 139.56918,62.958630 L 140.36116,61.077423 C 138.20884,60.533310 135.78372,59.153083 134.51247,56.782032 z "
|
||||||
|
style="fill:url(#linearGradient3164);fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
|
||||||
|
id="path3163" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,168 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1383"
|
||||||
|
height="20.000000"
|
||||||
|
width="20.000000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2407"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2405"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2099">
|
||||||
|
<stop
|
||||||
|
id="stop2101"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#babbdc;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2103"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#9193d5;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2105"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#6164c4;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2099"
|
||||||
|
id="radialGradient2403"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2170">
|
||||||
|
<stop
|
||||||
|
id="stop2172"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;" />
|
||||||
|
<stop
|
||||||
|
id="stop2174"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2389"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2156">
|
||||||
|
<stop
|
||||||
|
id="stop2158"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2162"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2387"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2183">
|
||||||
|
<stop
|
||||||
|
id="stop2185"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcbbbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2187"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d59191;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2189"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c46161;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2183"
|
||||||
|
id="radialGradient2385"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g2352"
|
||||||
|
transform="matrix(3.960176e-2,0.000000,0.000000,3.960176e-2,8.583018e-2,-0.542443)">
|
||||||
|
<path
|
||||||
|
id="path2205"
|
||||||
|
style="fill:url(#radialGradient2403);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2207"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 49.437500,116.68750 C 9.5976600,169.60788 -7.6271960,238.90434 2.9105100,304.39310 C 10.308170,354.10552 33.551850,401.19028 68.005840,437.74812 C 101.74452,473.63467 146.21320,499.26985 194.24680,510.25156 C 199.99153,509.77997 204.92357,504.08065 210.37445,501.55834 C 215.90779,497.67119 223.83362,494.37316 226.03125,487.84375 C 214.71347,483.03902 201.26103,489.57962 190.31449,482.76524 C 183.05001,480.40226 172.18692,473.68002 177.21875,464.71875 C 181.84751,455.69206 188.37504,446.27587 187.84375,435.81250 C 182.27407,432.29351 176.75441,439.84769 171.85169,442.23271 C 163.44133,448.75531 155.02010,439.49404 147.83592,435.54196 C 141.04333,431.13375 133.90750,423.08322 138.65546,414.63331 C 140.43113,409.52457 144.56495,404.72912 145.00000,399.43750 C 132.04760,387.74827 112.42524,381.33455 106.61503,363.19063 C 103.49587,357.85237 108.14552,350.98603 114.32775,353.19001 C 130.59663,356.43830 144.14277,367.19756 159.53125,372.59375 C 159.03403,362.21575 150.46649,353.36290 151.00000,342.90625 C 155.25471,338.23625 163.21295,340.61619 168.81504,338.17213 C 180.29677,335.24106 192.71966,332.03960 202.34375,325.43750 C 197.91139,314.26859 189.38937,305.02268 182.04158,295.62421 C 172.08277,286.05686 164.87883,272.96910 166.22505,258.78312 C 167.59111,251.89486 161.52097,248.10257 155.68750,246.71875 C 147.36821,242.57850 137.13811,240.61477 130.75000,233.56250 C 127.56405,225.44229 132.68058,217.37859 134.65625,209.68750 C 127.81109,194.34143 110.02988,187.49041 94.103600,187.62518 C 85.825620,187.08688 71.951440,187.44949 71.187500,176.34375 C 69.469880,168.39415 71.102430,159.54252 78.320230,154.80574 C 84.761240,148.88834 97.483650,143.82876 93.788660,132.90201 C 88.703610,118.40413 76.709880,106.47826 62.687500,100.50000 C 58.270830,105.89583 53.854170,111.29167 49.437500,116.68750 z " />
|
||||||
|
<path
|
||||||
|
id="path2209"
|
||||||
|
style="opacity:0.24999996;fill:url(#radialGradient2405);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2211"
|
||||||
|
style="fill:url(#radialGradient2407);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(-97.35587,-100.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2213"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 399.65625,62.656250 C 382.54719,65.809370 363.97591,82.236010 344.21875,117.96875 C 348.41098,131.94283 317.84416,130.43163 304.56250,136.46875 C 294.03305,141.25487 292.40506,151.23182 291.34375,162.90625 C 289.64992,181.53839 312.27807,174.90784 286.03125,188.03125 C 274.43186,193.83095 288.05331,216.68222 279.43750,226.37500 C 268.46058,238.72403 284.65807,245.38859 292.65625,250.18750 C 308.12778,259.47042 324.86886,219.77254 327.03125,211.84375 C 331.91737,193.92794 337.00795,191.37256 345.53125,185.40625 C 355.16461,178.66291 350.37475,208.43658 353.46875,219.78125 C 356.05583,229.26718 347.30719,246.40211 346.84375,251.50000 C 346.16847,258.92820 378.05172,253.87859 345.53125,264.71875 C 338.97503,266.90416 346.08936,273.95213 342.90625,284.56250 C 340.81195,291.54352 334.17822,295.45725 332.31250,305.71875 C 330.62965,314.97443 323.54941,324.44727 319.09375,330.81250 C 314.49539,337.38158 341.49218,341.03906 345.53125,341.40625 C 353.24994,342.10796 363.33867,349.86047 371.96875,353.31250 C 386.54655,359.14361 374.74782,374.74768 371.96875,379.75000 C 366.61834,389.38075 365.35096,412.81610 375.93750,400.90625 C 387.25289,388.17646 407.94039,383.69590 414.28125,367.84375 C 420.27486,352.85972 405.96038,347.20200 399.75000,334.78125 C 392.94162,321.16450 405.78361,313.60281 411.62500,307.03125 C 475.09922,315.11177 404.24911,360.92665 448.65625,359.90625 C 455.23268,356.25268 452.86072,283.91891 460.56250,283.21875 C 469.26117,282.42797 488.86303,287.73014 501.84375,288.34375 C 502.47868,281.04649 502.87500,273.67982 502.87500,266.21875 C 502.87500,182.69263 462.20861,108.63106 399.65625,62.656250 z " />
|
||||||
|
<path
|
||||||
|
id="path2215"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 135.32722,110.03897 C 121.98710,120.71107 152.08415,135.15817 159.12436,135.15817 C 180.96110,135.15817 190.38957,140.12381 194.82006,117.97135 C 197.74779,103.33269 216.13712,99.812010 223.90545,95.496280 C 232.84080,90.532190 224.93446,74.879410 227.87163,65.088830 C 232.15017,50.827040 213.12453,51.331700 205.39656,49.224070 C 189.97641,45.018570 178.92989,58.503920 171.02292,66.410890 C 164.35819,73.075620 149.22800,70.105020 141.93754,73.021210 C 126.36521,79.250140 155.35654,86.241830 161.76848,86.241830 C 175.52283,83.597700 146.88983,100.78888 135.32722,110.03897 z " />
|
||||||
|
<path
|
||||||
|
id="path2217"
|
||||||
|
style="opacity:0.099999972;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 48.187500,124.40625 C -1.6207600,190.56969 -13.978323,282.87199 17.061220,359.72647 C 45.173010,431.33820 108.99006,488.71895 184.04223,506.50276 C 192.51780,509.02061 199.09197,500.95210 206.03285,497.26410 C 207.81574,494.65005 195.65768,496.82064 191.70916,495.07030 C 181.71784,493.32843 170.39424,489.08779 165.71875,479.34375 C 160.37898,468.30241 171.08569,459.31509 174.05637,449.35193 C 174.19270,446.36595 166.58063,453.68019 162.92103,453.77971 C 153.25451,456.30241 145.14979,448.17720 137.37784,443.68475 C 127.72164,437.44422 121.62953,424.16910 128.41304,413.67460 C 132.57168,408.29626 132.27474,403.55922 125.50063,400.97969 C 112.16569,391.68729 96.881990,381.45420 93.916170,364.16335 C 92.510810,353.38952 106.59067,347.62877 114.88882,352.84504 C 125.12373,355.88026 134.30336,361.42984 144.03125,365.68750 C 141.05661,358.45086 135.93602,348.03258 142.49324,341.47261 C 152.70468,335.90215 165.03357,337.03535 175.60779,332.16962 C 179.36902,330.54499 186.85772,329.57638 187.86265,326.15458 C 177.52178,306.86016 156.08045,293.01972 154.39657,269.58757 C 154.51617,264.46394 154.76014,257.60868 148.25153,256.59640 C 137.09561,251.36225 120.80599,248.33845 117.81250,234.31250 C 116.76895,227.02308 121.90199,219.97546 121.21549,213.14418 C 111.90553,198.11962 92.413510,197.54866 76.656250,196.78125 C 65.970910,195.62856 57.235050,185.95527 58.647090,175.00645 C 57.974580,162.52727 67.873420,153.19094 77.613480,147.14427 C 82.764790,143.79110 83.101260,137.23780 79.128590,132.86860 C 74.583390,123.95207 66.930840,116.87622 58.156250,112.18750 C 54.833330,116.26042 51.510420,120.33333 48.187500,124.40625 z " />
|
||||||
|
<path
|
||||||
|
id="path2219"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 399.37500,70.093750 C 378.29141,80.086930 364.72487,100.70788 354.20936,120.52866 C 353.54971,132.87632 338.98983,135.47392 329.25510,137.47334 C 319.33904,139.48865 305.10504,140.60223 303.10159,153.00100 C 300.88136,160.28952 300.24041,169.50025 307.00000,174.59375 C 311.74293,183.44393 301.30223,189.41807 294.53125,192.40625 C 287.43904,198.49610 293.62889,208.51152 292.31906,216.40610 C 293.44124,223.41168 287.01197,228.87655 286.62500,235.18750 C 289.61107,240.51338 296.32367,243.57831 301.93679,244.89706 C 310.40467,242.68375 313.71627,232.88257 318.43750,226.37500 C 326.31132,210.65509 328.73782,189.78081 345.89502,180.88085 C 352.80806,175.61900 360.86666,182.13224 361.56250,189.62500 C 361.77949,201.78476 363.24024,213.92725 363.36635,226.08849 C 363.80310,234.50241 359.13324,241.77081 357.90625,249.75000 C 363.21804,250.01381 371.15411,253.44787 369.40625,260.31250 C 366.43351,266.61567 358.54840,267.05580 353.03125,270.00000 C 355.05234,280.86303 351.24782,291.82104 344.88544,300.47050 C 340.45931,310.86159 337.52199,322.30876 330.12500,331.00000 C 340.60124,334.85022 352.97436,334.77049 363.35368,339.97934 C 372.19442,345.51028 385.29528,348.26033 388.62062,359.45184 C 390.35779,372.21800 379.28802,382.23593 377.81250,394.53125 C 388.27941,384.30020 404.25153,379.87559 411.73404,366.79806 C 417.15865,356.81953 405.91795,349.69951 401.46737,342.06510 C 393.55808,333.15402 394.91462,319.32929 403.13220,311.11574 C 407.95921,306.11871 413.93296,299.01026 421.68561,302.25164 C 435.22896,303.19276 450.88128,312.82483 449.53125,328.09375 C 448.83115,336.51118 443.23641,344.00746 443.81250,352.56250 C 448.83380,356.72366 450.77585,349.70056 450.01113,345.75989 C 452.99959,324.39633 451.01999,302.02173 458.25000,281.46875 C 466.01067,272.90788 477.96689,279.58417 487.58569,279.80942 C 493.09157,279.85509 502.84925,285.04161 500.50923,275.60079 C 504.07415,198.78507 468.47279,121.54970 408.28591,73.819440 C 405.84158,71.817640 402.79052,68.517350 399.37500,70.093750 z " />
|
||||||
|
<path
|
||||||
|
id="path2221"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 196.03125,52.906250 C 182.00437,57.216240 175.15670,74.984920 159.18750,74.812500 C 151.16243,74.846220 147.23312,76.198190 157.48405,77.439620 C 162.27451,78.713660 169.80722,75.918110 170.87803,82.654960 C 172.32034,91.697580 161.43665,95.747350 155.74416,100.54906 C 149.86694,104.68076 143.92700,108.77405 138.71875,113.75000 C 141.15812,121.11726 150.07831,123.83205 156.71540,126.12510 C 165.40474,127.98036 175.16304,128.43926 183.50914,125.87681 C 190.54103,118.43112 189.02421,105.44226 198.57500,99.722680 C 205.09564,93.401230 216.48303,93.057250 221.56332,85.691980 C 222.94075,76.913280 220.18862,68.050720 221.90625,59.281250 C 217.78697,53.226760 208.89717,55.022290 202.62390,52.950740 C 200.44632,52.459090 198.23369,52.885700 196.03125,52.906250 z " />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,126 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
id="svg1383"
|
||||||
|
height="20.000000"
|
||||||
|
width="20.000000"
|
||||||
|
y="0.0000000"
|
||||||
|
x="0.0000000"
|
||||||
|
version="1.0">
|
||||||
|
<defs
|
||||||
|
id="defs3">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2170">
|
||||||
|
<stop
|
||||||
|
id="stop2172"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.62352943;" />
|
||||||
|
<stop
|
||||||
|
id="stop2174"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:0.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2170"
|
||||||
|
id="radialGradient2389"
|
||||||
|
fy="261.72299"
|
||||||
|
fx="239.48222"
|
||||||
|
r="54.908401"
|
||||||
|
cy="273.33273"
|
||||||
|
cx="253.91165" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2156">
|
||||||
|
<stop
|
||||||
|
id="stop2158"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:0.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2162"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#000000;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2156"
|
||||||
|
id="radialGradient2387"
|
||||||
|
fy="473.60248"
|
||||||
|
fx="421.29236"
|
||||||
|
r="225.21623"
|
||||||
|
cy="354.60162"
|
||||||
|
cx="317.40088" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient2183">
|
||||||
|
<stop
|
||||||
|
id="stop2185"
|
||||||
|
offset="0.0000000"
|
||||||
|
style="stop-color:#dcbbbb;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2187"
|
||||||
|
offset="0.60000002"
|
||||||
|
style="stop-color:#d59191;stop-opacity:1.0000000;" />
|
||||||
|
<stop
|
||||||
|
id="stop2189"
|
||||||
|
offset="1.0000000"
|
||||||
|
style="stop-color:#c46161;stop-opacity:1.0000000;" />
|
||||||
|
</linearGradient>
|
||||||
|
<radialGradient
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
xlink:href="#linearGradient2183"
|
||||||
|
id="radialGradient2385"
|
||||||
|
fy="247.21059"
|
||||||
|
fx="213.50940"
|
||||||
|
r="252.51404"
|
||||||
|
cy="374.91882"
|
||||||
|
cx="360.68903" />
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
id="g2374"
|
||||||
|
transform="matrix(3.960176e-2,0.000000,0.000000,3.960176e-2,-20.50708,-21.13536)">
|
||||||
|
<path
|
||||||
|
id="path2263"
|
||||||
|
style="fill:url(#radialGradient2385);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2265"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 569.43750,636.68750 C 529.59766,689.60788 512.37280,758.90434 522.91051,824.39310 C 530.30817,874.10552 553.55185,921.19028 588.00584,957.74812 C 621.74452,993.63467 666.21320,1019.2699 714.24680,1030.2516 C 719.99153,1029.7800 724.92357,1024.0806 730.37445,1021.5583 C 735.90779,1017.6712 743.83362,1014.3732 746.03125,1007.8438 C 734.71347,1003.0390 721.26103,1009.5796 710.31449,1002.7652 C 703.05001,1000.4023 692.18692,993.68002 697.21875,984.71875 C 701.84751,975.69206 708.37504,966.27587 707.84375,955.81250 C 702.27407,952.29351 696.75441,959.84769 691.85169,962.23271 C 683.44133,968.75531 675.02010,959.49404 667.83592,955.54196 C 661.04333,951.13375 653.90750,943.08322 658.65546,934.63331 C 660.43113,929.52457 664.56495,924.72912 665.00000,919.43750 C 652.04760,907.74827 632.42524,901.33455 626.61503,883.19063 C 623.49587,877.85237 628.14552,870.98603 634.32775,873.19001 C 650.59663,876.43830 664.14277,887.19756 679.53125,892.59375 C 679.03403,882.21575 670.46649,873.36290 671.00000,862.90625 C 675.25471,858.23625 683.21295,860.61619 688.81504,858.17213 C 700.29677,855.24106 712.71966,852.03960 722.34375,845.43750 C 717.91139,834.26859 709.38937,825.02268 702.04158,815.62421 C 692.08277,806.05686 684.87883,792.96910 686.22505,778.78312 C 687.59111,771.89486 681.52097,768.10257 675.68750,766.71875 C 667.36821,762.57850 657.13811,760.61477 650.75000,753.56250 C 647.56405,745.44229 652.68058,737.37859 654.65625,729.68750 C 647.81109,714.34143 630.02988,707.49041 614.10360,707.62518 C 605.82562,707.08688 591.95144,707.44949 591.18750,696.34375 C 589.46988,688.39415 591.10243,679.54252 598.32023,674.80574 C 604.76124,668.88834 617.48365,663.82876 613.78866,652.90201 C 608.70361,638.40413 596.70988,626.47826 582.68750,620.50000 C 578.27083,625.89583 573.85417,631.29167 569.43750,636.68750 z " />
|
||||||
|
<path
|
||||||
|
id="path2267"
|
||||||
|
style="opacity:0.24999996;fill:url(#radialGradient2387);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2269"
|
||||||
|
style="fill:url(#radialGradient2389);fill-opacity:1.0000000;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
transform="translate(422.6441,420.0000)"
|
||||||
|
d="M 600.21661 366.21146 A 252.51404 252.51404 0 1 1 95.188538,366.21146 A 252.51404 252.51404 0 1 1 600.21661 366.21146 z" />
|
||||||
|
<path
|
||||||
|
id="path2271"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 919.65625,582.65625 C 902.54719,585.80937 883.97591,602.23601 864.21875,637.96875 C 868.41098,651.94283 837.84416,650.43163 824.56250,656.46875 C 814.03305,661.25487 812.40506,671.23182 811.34375,682.90625 C 809.64992,701.53839 832.27807,694.90784 806.03125,708.03125 C 794.43186,713.83095 808.05331,736.68222 799.43750,746.37500 C 788.46058,758.72403 804.65807,765.38859 812.65625,770.18750 C 828.12778,779.47042 844.86886,739.77254 847.03125,731.84375 C 851.91737,713.92794 857.00795,711.37256 865.53125,705.40625 C 875.16461,698.66291 870.37475,728.43658 873.46875,739.78125 C 876.05583,749.26718 867.30719,766.40211 866.84375,771.50000 C 866.16847,778.92820 898.05172,773.87859 865.53125,784.71875 C 858.97503,786.90416 866.08936,793.95213 862.90625,804.56250 C 860.81195,811.54352 854.17822,815.45725 852.31250,825.71875 C 850.62965,834.97443 843.54941,844.44727 839.09375,850.81250 C 834.49539,857.38158 861.49218,861.03906 865.53125,861.40625 C 873.24994,862.10796 883.33867,869.86047 891.96875,873.31250 C 906.54655,879.14361 894.74782,894.74768 891.96875,899.75000 C 886.61834,909.38075 885.35096,932.81610 895.93750,920.90625 C 907.25289,908.17646 927.94039,903.69590 934.28125,887.84375 C 940.27486,872.85972 925.96038,867.20200 919.75000,854.78125 C 912.94162,841.16450 925.78361,833.60281 931.62500,827.03125 C 995.09922,835.11177 924.24911,880.92665 968.65625,879.90625 C 975.23268,876.25268 972.86072,803.91891 980.56250,803.21875 C 989.26117,802.42797 1008.8630,807.73014 1021.8438,808.34375 C 1022.4787,801.04649 1022.8750,793.67982 1022.8750,786.21875 C 1022.8750,702.69263 982.20861,628.63106 919.65625,582.65625 z " />
|
||||||
|
<path
|
||||||
|
id="path2273"
|
||||||
|
style="fill:#18551f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 655.32722,630.03897 C 641.98710,640.71107 672.08415,655.15817 679.12436,655.15817 C 700.96110,655.15817 710.38957,660.12381 714.82006,637.97135 C 717.74779,623.33269 736.13712,619.81201 743.90545,615.49628 C 752.84080,610.53219 744.93446,594.87941 747.87163,585.08883 C 752.15017,570.82704 733.12453,571.33170 725.39656,569.22407 C 709.97641,565.01857 698.92989,578.50392 691.02292,586.41089 C 684.35819,593.07562 669.22800,590.10502 661.93754,593.02121 C 646.36521,599.25014 675.35654,606.24183 681.76848,606.24183 C 695.52283,603.59770 666.88983,620.78888 655.32722,630.03897 z " />
|
||||||
|
<path
|
||||||
|
id="path2275"
|
||||||
|
style="opacity:0.099999972;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 568.18750,644.40625 C 518.37924,710.56969 506.02168,802.87199 537.06122,879.72647 C 565.17301,951.33820 628.99006,1008.7189 704.04223,1026.5028 C 712.51780,1029.0206 719.09197,1020.9521 726.03285,1017.2641 C 727.81574,1014.6500 715.65768,1016.8206 711.70916,1015.0703 C 701.71784,1013.3284 690.39424,1009.0878 685.71875,999.34375 C 680.37898,988.30241 691.08569,979.31509 694.05637,969.35193 C 694.19270,966.36595 686.58063,973.68019 682.92103,973.77971 C 673.25451,976.30241 665.14979,968.17720 657.37784,963.68475 C 647.72164,957.44422 641.62953,944.16910 648.41304,933.67460 C 652.57168,928.29626 652.27474,923.55922 645.50063,920.97969 C 632.16569,911.68729 616.88199,901.45420 613.91617,884.16335 C 612.51081,873.38952 626.59067,867.62877 634.88882,872.84504 C 645.12373,875.88026 654.30336,881.42984 664.03125,885.68750 C 661.05661,878.45086 655.93602,868.03258 662.49324,861.47261 C 672.70468,855.90215 685.03357,857.03535 695.60779,852.16962 C 699.36902,850.54499 706.85772,849.57638 707.86265,846.15458 C 697.52178,826.86016 676.08045,813.01972 674.39657,789.58757 C 674.51617,784.46394 674.76014,777.60868 668.25153,776.59640 C 657.09561,771.36225 640.80599,768.33845 637.81250,754.31250 C 636.76895,747.02308 641.90199,739.97546 641.21549,733.14418 C 631.90553,718.11962 612.41351,717.54866 596.65625,716.78125 C 585.97091,715.62856 577.23505,705.95527 578.64709,695.00645 C 577.97458,682.52727 587.87342,673.19094 597.61348,667.14427 C 602.76479,663.79110 603.10126,657.23780 599.12859,652.86860 C 594.58339,643.95207 586.93084,636.87622 578.15625,632.18750 C 574.83333,636.26042 571.51042,640.33333 568.18750,644.40625 z " />
|
||||||
|
<path
|
||||||
|
id="path2277"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;stroke:none;stroke-width:0.35230049;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
|
||||||
|
d="M 919.37500,590.09375 C 898.29141,600.08693 884.72487,620.70788 874.20936,640.52866 C 873.54971,652.87632 858.98983,655.47392 849.25510,657.47334 C 839.33904,659.48865 825.10504,660.60223 823.10159,673.00100 C 820.88136,680.28952 820.24041,689.50025 827.00000,694.59375 C 831.74293,703.44393 821.30223,709.41807 814.53125,712.40625 C 807.43904,718.49610 813.62889,728.51152 812.31906,736.40610 C 813.44124,743.41168 807.01197,748.87655 806.62500,755.18750 C 809.61107,760.51338 816.32367,763.57831 821.93679,764.89706 C 830.40467,762.68375 833.71627,752.88257 838.43750,746.37500 C 846.31132,730.65509 848.73782,709.78081 865.89502,700.88085 C 872.80806,695.61900 880.86666,702.13224 881.56250,709.62500 C 881.77949,721.78476 883.24024,733.92725 883.36635,746.08849 C 883.80310,754.50241 879.13324,761.77081 877.90625,769.75000 C 883.21804,770.01381 891.15411,773.44787 889.40625,780.31250 C 886.43351,786.61567 878.54840,787.05580 873.03125,790.00000 C 875.05234,800.86303 871.24782,811.82104 864.88544,820.47050 C 860.45931,830.86159 857.52199,842.30876 850.12500,851.00000 C 860.60124,854.85022 872.97436,854.77049 883.35368,859.97934 C 892.19442,865.51028 905.29528,868.26033 908.62062,879.45184 C 910.35779,892.21800 899.28802,902.23593 897.81250,914.53125 C 908.27941,904.30020 924.25153,899.87559 931.73404,886.79806 C 937.15865,876.81953 925.91795,869.69951 921.46737,862.06510 C 913.55808,853.15402 914.91462,839.32929 923.13220,831.11574 C 927.95921,826.11871 933.93296,819.01026 941.68561,822.25164 C 955.22896,823.19276 970.88128,832.82483 969.53125,848.09375 C 968.83115,856.51118 963.23641,864.00746 963.81250,872.56250 C 968.83380,876.72366 970.77585,869.70056 970.01113,865.75989 C 972.99959,844.39633 971.01999,822.02173 978.25000,801.46875 C 986.01067,792.90788 997.96689,799.58417 1007.5857,799.80942 C 1013.0916,799.85509 1022.8492,805.04161 1020.5092,795.60079 C 1024.0741,718.78507 988.47279,641.54970 928.28591,593.81944 C 925.84158,591.81764 922.79052,588.51735 919.37500,590.09375 z " />
|
||||||
|
<path
|
||||||
|
id="path2279"
|
||||||
|
style="opacity:0.20000000;fill:#18001f;fill-opacity:0.62352943;fill-rule:evenodd;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
|
||||||
|
d="M 716.03125,572.90625 C 702.00437,577.21624 695.15670,594.98492 679.18750,594.81250 C 671.16243,594.84622 667.23312,596.19819 677.48405,597.43962 C 682.27451,598.71366 689.80722,595.91811 690.87803,602.65496 C 692.32034,611.69758 681.43665,615.74735 675.74416,620.54906 C 669.86694,624.68076 663.92700,628.77405 658.71875,633.75000 C 661.15812,641.11726 670.07831,643.83205 676.71540,646.12510 C 685.40474,647.98036 695.16304,648.43926 703.50914,645.87681 C 710.54103,638.43112 709.02421,625.44226 718.57500,619.72268 C 725.09564,613.40123 736.48303,613.05725 741.56332,605.69198 C 742.94075,596.91328 740.18862,588.05072 741.90625,579.28125 C 737.78697,573.22676 728.89717,575.02229 722.62390,572.95074 C 720.44632,572.45909 718.23369,572.88570 716.03125,572.90625 z " />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,7 @@
|
||||||
|
2004-13-12 Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
* Added/Fixed Dutch (nl) translations
|
||||||
|
|
||||||
|
2004-09-10 Jesse van den Kieboom <troplosti@orcaweb.cjb.net>
|
||||||
|
|
||||||
|
* Added Dutch (nl) translations
|
|
@ -0,0 +1,256 @@
|
||||||
|
# Makefile for program source directory in GNU NLS utilities package.
|
||||||
|
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||||
|
#
|
||||||
|
# This file file be copied and used freely without restrictions. It can
|
||||||
|
# be used in projects which are not available under the GNU Public License
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
# Please note that the actual code is *not* freely available.
|
||||||
|
#
|
||||||
|
# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
|
||||||
|
# instead of PACKAGE and to look for po2tbl in ./ not in intl/
|
||||||
|
#
|
||||||
|
# - Modified by jacob berkman <jacob@ximian.com> to install
|
||||||
|
# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
|
||||||
|
|
||||||
|
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
srcdir = @srcdir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
top_builddir = ..
|
||||||
|
VPATH = @srcdir@
|
||||||
|
|
||||||
|
prefix = @prefix@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
datadir = @datadir@
|
||||||
|
libdir = @libdir@
|
||||||
|
localedir = $(libdir)/locale
|
||||||
|
gnulocaledir = $(datadir)/locale
|
||||||
|
gettextsrcdir = $(datadir)/glib-2.0/gettext/po
|
||||||
|
subdir = po
|
||||||
|
install_sh = @install_sh@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||||
|
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
|
||||||
|
CC = @CC@
|
||||||
|
GENCAT = @GENCAT@
|
||||||
|
GMSGFMT = @GMSGFMT@
|
||||||
|
MSGFMT = @MSGFMT@
|
||||||
|
XGETTEXT = @XGETTEXT@
|
||||||
|
INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
|
||||||
|
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
|
||||||
|
MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
|
||||||
|
GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
|
||||||
|
|
||||||
|
DEFS = @DEFS@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
|
||||||
|
INCLUDES = -I.. -I$(top_srcdir)/intl
|
||||||
|
|
||||||
|
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
|
||||||
|
|
||||||
|
SOURCES =
|
||||||
|
POFILES = @POFILES@
|
||||||
|
GMOFILES = @GMOFILES@
|
||||||
|
DISTFILES = ChangeLog Makefile.in.in POTFILES.in \
|
||||||
|
$(POFILES) $(GMOFILES) $(SOURCES)
|
||||||
|
|
||||||
|
POTFILES = \
|
||||||
|
|
||||||
|
CATALOGS = @CATALOGS@
|
||||||
|
CATOBJEXT = @CATOBJEXT@
|
||||||
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$(COMPILE) $<
|
||||||
|
|
||||||
|
.po.pox:
|
||||||
|
$(MAKE) $(GETTEXT_PACKAGE).pot
|
||||||
|
$(MSGMERGE) $< $(top_builddir)/po/$(GETTEXT_PACKAGE).pot -o $*pox
|
||||||
|
|
||||||
|
.po.mo:
|
||||||
|
$(MSGFMT) -o $@ $<
|
||||||
|
|
||||||
|
.po.gmo:
|
||||||
|
file=`echo $* | sed 's,.*/,,'`.gmo \
|
||||||
|
&& rm -f $$file && $(GMSGFMT) -o $$file $<
|
||||||
|
|
||||||
|
.po.cat:
|
||||||
|
sed -f ../intl/po2msg.sed < $< > $*.msg \
|
||||||
|
&& rm -f $@ && $(GENCAT) $@ $*.msg
|
||||||
|
|
||||||
|
|
||||||
|
all: all-@USE_NLS@
|
||||||
|
|
||||||
|
all-yes: $(CATALOGS)
|
||||||
|
all-no:
|
||||||
|
|
||||||
|
$(GETTEXT_PACKAGE).pot: $(POTFILES)
|
||||||
|
$(GENPOT)
|
||||||
|
|
||||||
|
install: install-exec install-data
|
||||||
|
install-exec:
|
||||||
|
install-data: install-data-@USE_NLS@
|
||||||
|
install-data-no: all
|
||||||
|
install-data-yes: all
|
||||||
|
if test -n "$(MKINSTALLDIRS)"; then \
|
||||||
|
$(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
|
||||||
|
else \
|
||||||
|
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
|
||||||
|
fi
|
||||||
|
@catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
case "$$cat" in \
|
||||||
|
*.gmo) destdir=$(gnulocaledir);; \
|
||||||
|
*) destdir=$(localedir);; \
|
||||||
|
esac; \
|
||||||
|
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
|
||||||
|
dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
|
||||||
|
if test -n "$(MKINSTALLDIRS)"; then \
|
||||||
|
$(MKINSTALLDIRS) $$dir; \
|
||||||
|
else \
|
||||||
|
$(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
|
||||||
|
fi; \
|
||||||
|
if test -r $$cat; then \
|
||||||
|
$(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
|
||||||
|
echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
|
||||||
|
else \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
|
||||||
|
echo "installing $(srcdir)/$$cat as" \
|
||||||
|
"$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT)"; \
|
||||||
|
fi; \
|
||||||
|
if test -r $$cat.m; then \
|
||||||
|
$(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \
|
||||||
|
else \
|
||||||
|
if test -r $(srcdir)/$$cat.m ; then \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$cat.m \
|
||||||
|
$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
echo "installing $(srcdir)/$$cat as" \
|
||||||
|
"$$dir/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m"; \
|
||||||
|
else \
|
||||||
|
true; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
if test "$(PACKAGE)" = "glib"; then \
|
||||||
|
if test -n "$(MKINSTALLDIRS)"; then \
|
||||||
|
$(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
else \
|
||||||
|
$(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
fi; \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
|
||||||
|
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Define this as empty until I found a useful application.
|
||||||
|
installcheck:
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
|
||||||
|
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT); \
|
||||||
|
rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE)$(INSTOBJEXT).m; \
|
||||||
|
done
|
||||||
|
if test "$(PACKAGE)" = "glib"; then \
|
||||||
|
rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
check: all
|
||||||
|
|
||||||
|
dvi info tags TAGS ID:
|
||||||
|
|
||||||
|
mostlyclean:
|
||||||
|
rm -f core core.* *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
|
||||||
|
rm -fr *.o
|
||||||
|
rm -f .intltool-merge-cache
|
||||||
|
|
||||||
|
clean: mostlyclean
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
|
||||||
|
|
||||||
|
maintainer-clean: distclean
|
||||||
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
rm -f $(GMOFILES)
|
||||||
|
|
||||||
|
distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
|
||||||
|
dist distdir: $(DISTFILES) $(GETTEXT_PACKAGE).pot
|
||||||
|
dists="$(DISTFILES)"; \
|
||||||
|
for file in $$dists; do \
|
||||||
|
ln $(srcdir)/$$file $(distdir) 2> /dev/null \
|
||||||
|
|| cp -p $(srcdir)/$$file $(distdir); \
|
||||||
|
done
|
||||||
|
|
||||||
|
update-po: Makefile
|
||||||
|
$(MAKE) $(GETTEXT_PACKAGE).pot
|
||||||
|
tmpdir=`pwd`; \
|
||||||
|
catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
|
||||||
|
echo "$$lang:"; \
|
||||||
|
result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
|
||||||
|
if $$result; then \
|
||||||
|
if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
||||||
|
rm -f $$tmpdir/$$lang.new.po; \
|
||||||
|
else \
|
||||||
|
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
||||||
|
:; \
|
||||||
|
else \
|
||||||
|
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
||||||
|
rm -f $$tmpdir/$$lang.new.po; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
else \
|
||||||
|
echo "msgmerge for $$cat failed!"; \
|
||||||
|
rm -f $$tmpdir/$$lang.new.po; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# POTFILES is created from POTFILES.in by stripping comments, empty lines
|
||||||
|
# and Intltool tags (enclosed in square brackets), and appending a full
|
||||||
|
# relative path to them
|
||||||
|
POTFILES: POTFILES.in
|
||||||
|
( if test 'x$(srcdir)' != 'x.'; then \
|
||||||
|
posrcprefix='$(top_srcdir)/'; \
|
||||||
|
else \
|
||||||
|
posrcprefix="../"; \
|
||||||
|
fi; \
|
||||||
|
rm -f $@-t $@ \
|
||||||
|
&& (sed -e '/^#/d' \
|
||||||
|
-e "s/^\[.*\] +//" \
|
||||||
|
-e '/^[ ]*$$/d' \
|
||||||
|
-e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
|
||||||
|
| sed -e '$$s/\\$$//') > $@-t \
|
||||||
|
&& chmod a-w $@-t \
|
||||||
|
&& mv $@-t $@ )
|
||||||
|
|
||||||
|
Makefile: Makefile.in.in ../config.status POTFILES
|
||||||
|
cd .. \
|
||||||
|
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
||||||
|
$(SHELL) ./config.status
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
|
@ -0,0 +1,21 @@
|
||||||
|
# List of source files containing translatable strings.
|
||||||
|
src/gm-app.c
|
||||||
|
src/gm-app-view.c
|
||||||
|
src/gm-net.c
|
||||||
|
src/gm-scripts.c
|
||||||
|
src/gm-scripts-dialog.c
|
||||||
|
src/gm-triggers-dialog.c
|
||||||
|
src/gm-world.c
|
||||||
|
src/gm-world-info-dialog.c
|
||||||
|
src/gm-world-logs-dialog.c
|
||||||
|
src/gm-world-properties-dialog.c
|
||||||
|
src/gm-worlds-list-dialog.c
|
||||||
|
src/gm-world-view.c
|
||||||
|
src/gm-ui.h
|
||||||
|
|
||||||
|
ui/gm-scripts.glade
|
||||||
|
ui/gm-preferences.glade
|
||||||
|
ui/gm-worlds-list.glade
|
||||||
|
ui/gm-world-properties.glade
|
||||||
|
ui/gm-triggers.glade
|
||||||
|
ui/gm-world.glade
|
|
@ -0,0 +1,973 @@
|
||||||
|
# GnoeMoe Gnome MOO Client.
|
||||||
|
# Copyright (C) 2004
|
||||||
|
# This file is distributed under the same license as the gnoemoe package.
|
||||||
|
# Jesse van den Kieboom, 2004.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: gnoemoe 0.8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2005-10-08 14:41+0200\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: Jesse van den Kieboom <jesse@icecrew.nl>\n"
|
||||||
|
"Language-Team: Dutch <NL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:43
|
||||||
|
msgid ""
|
||||||
|
"Enable debugging. Debugging can be done in different depth levels, each "
|
||||||
|
"level inherits all messages from the levels below: 0 = None, 1 = Default and "
|
||||||
|
"2 = MCP"
|
||||||
|
msgstr ""
|
||||||
|
"Activeer debugging. Je kunt op verschillende niveau's debuggen, elk niveau "
|
||||||
|
"erft alle berichten van de niveau's eronder: 0 = None, 1 = Default en 2 = MCP"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:46
|
||||||
|
msgid "DBGGLEVEL"
|
||||||
|
msgstr "DBGNIVEAU"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:54
|
||||||
|
msgid "Show application version"
|
||||||
|
msgstr "Toon applicatie versie"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:62
|
||||||
|
msgid "Load specified worlds, seperated by a `,'"
|
||||||
|
msgstr "Laad gespecificeerde werelden, gescheiden door een `,'"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:63
|
||||||
|
msgid "WORLDS"
|
||||||
|
msgstr "WERELDEN"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:70
|
||||||
|
msgid "Recover from previous session (used with gnome session)"
|
||||||
|
msgstr ""
|
||||||
|
"Herstel van de vorige opgeslagen sessie (wordt gebruikt door gnome sessies)"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:419
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"GnoeMoe Application: there is no application directory, this is very bad!!!\n"
|
||||||
|
msgstr "GnoeMoe Applicatie: er is geen applicatie map, dit is heel erg!!!\n"
|
||||||
|
|
||||||
|
#: ../src/gm-app.c:437
|
||||||
|
#, c-format
|
||||||
|
msgid "Current version of GnoeMoe is %s\n"
|
||||||
|
msgstr "Huidige versie van GnoeMoe is %s\n"
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:213
|
||||||
|
msgid "Find:"
|
||||||
|
msgstr "Zoek: "
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:219
|
||||||
|
msgid "Search backwards"
|
||||||
|
msgstr "Zoek achterwaarts"
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:232 ../src/gm-ui.h:70
|
||||||
|
msgid "Find next"
|
||||||
|
msgstr "Zoek volgende"
|
||||||
|
|
||||||
|
#. File menu
|
||||||
|
#: ../src/gm-app-view.c:521 ../src/gm-ui.h:49
|
||||||
|
msgid "Connect"
|
||||||
|
msgstr "Verbinden"
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:524
|
||||||
|
msgid "Disconnect"
|
||||||
|
msgstr "Verbinding verbreken"
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:740
|
||||||
|
msgid "Open world "
|
||||||
|
msgstr "Open wereld "
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1210
|
||||||
|
msgid "Jesse van den Kieboom"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1211
|
||||||
|
msgid "Sjoerd Simons (debian package)"
|
||||||
|
msgstr "Sjoerd Simons (debian pakket)"
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1216
|
||||||
|
msgid "Simon Gijsen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1223
|
||||||
|
msgid "GnoeMoe"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1225
|
||||||
|
msgid "(C) 2004-2005 Icecrew.nl"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1226
|
||||||
|
msgid "GnoeMoe Gnome MOO Client"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-app-view.c:1385
|
||||||
|
msgid "You didn't select a log file"
|
||||||
|
msgstr "Je hebt geen log bestand geselecteerd"
|
||||||
|
|
||||||
|
#: ../src/gm-net.c:184
|
||||||
|
#, c-format
|
||||||
|
msgid "Connection lost... (%s)"
|
||||||
|
msgstr "Connectie verloren... (%s)"
|
||||||
|
|
||||||
|
#: ../src/gm-net.c:395
|
||||||
|
msgid "No addresses available"
|
||||||
|
msgstr "Geen adressen beschikbaar"
|
||||||
|
|
||||||
|
#: ../src/gm-net.c:439
|
||||||
|
msgid "Not connected"
|
||||||
|
msgstr "Niet verbonden"
|
||||||
|
|
||||||
|
#: ../src/gm-net.c:535
|
||||||
|
msgid "Connect timeout (5)"
|
||||||
|
msgstr "Verbinden timeout (5)"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:316
|
||||||
|
#, c-format
|
||||||
|
msgid "Error in execution: %s"
|
||||||
|
msgstr "Error bij het uitvoeren van: %s"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:323
|
||||||
|
msgid "Ruby backtrace:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:329
|
||||||
|
#, c-format
|
||||||
|
msgid "\tfrom %s"
|
||||||
|
msgstr "\tuit %s"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:388
|
||||||
|
#, c-format
|
||||||
|
msgid "Run script '%s' from '%s' (%s)"
|
||||||
|
msgstr "Script '%s' uit '%s' (%s) uitvoeren"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:392
|
||||||
|
#, c-format
|
||||||
|
msgid "Run script '%s' from '%s' ()"
|
||||||
|
msgstr "Script '%s' uit '%s' () uitvoeren"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:436
|
||||||
|
#, c-format
|
||||||
|
msgid "Registering functions from '%s'"
|
||||||
|
msgstr "Functies registreren uit '%s'"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:492
|
||||||
|
#, c-format
|
||||||
|
msgid "File `%s' already loaded"
|
||||||
|
msgstr "Bestand `%s' is al toegevoegd"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:502
|
||||||
|
#, c-format
|
||||||
|
msgid "File `%s' added"
|
||||||
|
msgstr "Bestand `%s' toegevoegd"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:806
|
||||||
|
#, c-format
|
||||||
|
msgid "Register function '%s' from '%s'"
|
||||||
|
msgstr "Registreer functie '%s' uit '%s"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts.c:814
|
||||||
|
#, c-format
|
||||||
|
msgid "Script '%s' is already defined"
|
||||||
|
msgstr "Script '%s' is al gedefinieerd"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:133
|
||||||
|
msgid "Saved "
|
||||||
|
msgstr "Opgeslagen "
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:146
|
||||||
|
msgid "Saving failed: "
|
||||||
|
msgstr "Opslaan mislukt: "
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:190
|
||||||
|
msgid "Loaded "
|
||||||
|
msgstr "Ingeladen "
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:201 ../src/gm-scripts-dialog.c:597
|
||||||
|
msgid "New <untitled>"
|
||||||
|
msgstr "Nieuw <naamloos>"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:294
|
||||||
|
msgid "<b>User:</b> "
|
||||||
|
msgstr "<b>Gebruiker:</b>"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:296
|
||||||
|
msgid "<b>Share:</b> "
|
||||||
|
msgstr "<b>Gedeeld:</b>"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:330 ../src/gm-ui.h:38 ../ui/gm-scripts.glade.h:4
|
||||||
|
msgid "Scripts"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:393 ../src/gm-scripts-dialog.c:665
|
||||||
|
msgid "Share"
|
||||||
|
msgstr "Gedeeld"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:396
|
||||||
|
msgid "User"
|
||||||
|
msgstr "Gebruiker"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:437
|
||||||
|
msgid "Filename"
|
||||||
|
msgstr "Bestandsnaam"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:729
|
||||||
|
msgid "Changed "
|
||||||
|
msgstr "Veranderd "
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:731
|
||||||
|
msgid "Changed <untitled>"
|
||||||
|
msgstr "Veranderd <niet opgeslagen>"
|
||||||
|
|
||||||
|
#: ../src/gm-scripts-dialog.c:758
|
||||||
|
msgid "Save file"
|
||||||
|
msgstr "Bestand opslaan"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:104 ../ui/gm-preferences.glade.h:3
|
||||||
|
msgid "Black"
|
||||||
|
msgstr "Zwart"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:105 ../ui/gm-preferences.glade.h:27
|
||||||
|
msgid "Red"
|
||||||
|
msgstr "Rood"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:106 ../ui/gm-preferences.glade.h:19
|
||||||
|
msgid "Green"
|
||||||
|
msgstr "Groen"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:107 ../ui/gm-preferences.glade.h:35
|
||||||
|
msgid "Yellow"
|
||||||
|
msgstr "Geel"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:108 ../ui/gm-preferences.glade.h:5
|
||||||
|
msgid "Blue"
|
||||||
|
msgstr "Blauw"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:109 ../ui/gm-preferences.glade.h:25
|
||||||
|
msgid "Purple"
|
||||||
|
msgstr "Paars"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:110 ../ui/gm-preferences.glade.h:9
|
||||||
|
msgid "Cyan"
|
||||||
|
msgstr "Cyaan"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:111 ../ui/gm-preferences.glade.h:33
|
||||||
|
msgid "White"
|
||||||
|
msgstr "Wit"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:116
|
||||||
|
msgid "Contains"
|
||||||
|
msgstr "Bevat:"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:117
|
||||||
|
msgid "Not contains"
|
||||||
|
msgstr "Bevat niet"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:118
|
||||||
|
msgid "Begins with"
|
||||||
|
msgstr "Begint met"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:119
|
||||||
|
msgid "Not begins with"
|
||||||
|
msgstr "Begint niet met"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:120
|
||||||
|
msgid "Ends with"
|
||||||
|
msgstr "Eindigt met"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:121
|
||||||
|
msgid "Not ends with"
|
||||||
|
msgstr "Eindigt niet met"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:122
|
||||||
|
msgid "Matches"
|
||||||
|
msgstr "Matched"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:123
|
||||||
|
msgid "Not matches"
|
||||||
|
msgstr "Matched niet"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:128
|
||||||
|
msgid "Online"
|
||||||
|
msgstr "Verbonden"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:129
|
||||||
|
msgid "Offline"
|
||||||
|
msgstr "Niet verbonden"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:130
|
||||||
|
msgid "Idle"
|
||||||
|
msgstr "Luieren"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:131
|
||||||
|
msgid "No longer idle"
|
||||||
|
msgstr "Niet langer inactief"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:132
|
||||||
|
msgid "Away"
|
||||||
|
msgstr "Afwezig"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:133
|
||||||
|
msgid "No longer away"
|
||||||
|
msgstr "Niet langer afwezig"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:138
|
||||||
|
msgid "Highlight line"
|
||||||
|
msgstr "Markeer regel"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:140
|
||||||
|
msgid "Highlight match"
|
||||||
|
msgstr "Markeer match"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:142 ../src/gm-triggers-dialog.c:156
|
||||||
|
msgid "Beep"
|
||||||
|
msgstr "Beep"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:143 ../src/gm-triggers-dialog.c:157
|
||||||
|
msgid "Play sound"
|
||||||
|
msgstr "Geluid afspelen"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:145 ../src/gm-triggers-dialog.c:159
|
||||||
|
msgid "Notify"
|
||||||
|
msgstr "Notificeren"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:147 ../src/gm-triggers-dialog.c:161
|
||||||
|
msgid "Run script"
|
||||||
|
msgstr "Script uitvoeren"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:150 ../src/gm-triggers-dialog.c:164
|
||||||
|
msgid "Run"
|
||||||
|
msgstr "Uitvoeren"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:329
|
||||||
|
msgid "Please fill in a trigger name"
|
||||||
|
msgstr "Vul alstublieft een trigger naam in"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:339
|
||||||
|
msgid "Please specify at least one condition"
|
||||||
|
msgstr "Specificeer alstublieft ten minste één conditie"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:348
|
||||||
|
msgid "Please specify at least one action"
|
||||||
|
msgstr "Specificeer alstublieft ten minste één actie"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:388
|
||||||
|
msgid ""
|
||||||
|
"<b>Player event</b>\n"
|
||||||
|
"Player events are triggered on userlist activity"
|
||||||
|
msgstr ""
|
||||||
|
"<b>Speler event</b>\n"
|
||||||
|
"Speler events worden getriggered door\n"
|
||||||
|
"spelerlijst activiteit"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:394
|
||||||
|
msgid ""
|
||||||
|
"<b>World event</b>\n"
|
||||||
|
"World events are triggered on incoming lines of text"
|
||||||
|
msgstr ""
|
||||||
|
"<b>Wereld event</b>\n"
|
||||||
|
"Wereld events worden getriggered door\n"
|
||||||
|
"binnenkomende regels tekst"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:685
|
||||||
|
msgid "Select a event type first"
|
||||||
|
msgstr "Selecteer eerst een event type"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:825
|
||||||
|
msgid "Select file"
|
||||||
|
msgstr "Selecteer bestand"
|
||||||
|
|
||||||
|
#: ../src/gm-triggers-dialog.c:863
|
||||||
|
msgid "Browse"
|
||||||
|
msgstr "Bladeren"
|
||||||
|
|
||||||
|
#: ../src/gm-world-info-dialog.c:24 ../src/gm-worlds-list-dialog.c:79
|
||||||
|
msgid "<i>unspecified</i>"
|
||||||
|
msgstr "<i>niet gespecificeerd</i>"
|
||||||
|
|
||||||
|
#: ../src/gm-world-logs-dialog.c:41 ../src/gm-ui.h:54
|
||||||
|
msgid "Logs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-world-logs-dialog.c:91
|
||||||
|
msgid "There are no log files for this world"
|
||||||
|
msgstr "Er zijn geen log bestanden voor deze wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-world-logs-dialog.c:96
|
||||||
|
#, c-format
|
||||||
|
msgid "Couldn't open the log directory: %s"
|
||||||
|
msgstr "Kon log directory niet openen: %s"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:36
|
||||||
|
#: ../src/gm-world-properties-dialog.c:49
|
||||||
|
#: ../src/gm-world-properties-dialog.c:70
|
||||||
|
#: ../src/gm-world-properties-dialog.c:93
|
||||||
|
msgid "Western"
|
||||||
|
msgstr "Westers"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:37
|
||||||
|
#: ../src/gm-world-properties-dialog.c:71
|
||||||
|
#: ../src/gm-world-properties-dialog.c:91
|
||||||
|
msgid "Central European"
|
||||||
|
msgstr "Centraal-Europees"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:38
|
||||||
|
msgid "South European"
|
||||||
|
msgstr "Zuid-Europees"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:39
|
||||||
|
#: ../src/gm-world-properties-dialog.c:47
|
||||||
|
#: ../src/gm-world-properties-dialog.c:98
|
||||||
|
msgid "Baltic"
|
||||||
|
msgstr "Baltisch"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:40
|
||||||
|
#: ../src/gm-world-properties-dialog.c:72
|
||||||
|
#: ../src/gm-world-properties-dialog.c:79
|
||||||
|
#: ../src/gm-world-properties-dialog.c:81
|
||||||
|
#: ../src/gm-world-properties-dialog.c:82
|
||||||
|
#: ../src/gm-world-properties-dialog.c:92
|
||||||
|
msgid "Cyrillic"
|
||||||
|
msgstr "Cyrillisch"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:41
|
||||||
|
#: ../src/gm-world-properties-dialog.c:75
|
||||||
|
#: ../src/gm-world-properties-dialog.c:97
|
||||||
|
msgid "Arabic"
|
||||||
|
msgstr "Arabisch"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:42
|
||||||
|
#: ../src/gm-world-properties-dialog.c:94
|
||||||
|
msgid "Greek"
|
||||||
|
msgstr "Grieks"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:43
|
||||||
|
msgid "Hebrew Visual"
|
||||||
|
msgstr "Hebreeuws visueel"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:44
|
||||||
|
#: ../src/gm-world-properties-dialog.c:74
|
||||||
|
#: ../src/gm-world-properties-dialog.c:96
|
||||||
|
msgid "Hebrew"
|
||||||
|
msgstr "Hebreeuws"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:45
|
||||||
|
#: ../src/gm-world-properties-dialog.c:73
|
||||||
|
#: ../src/gm-world-properties-dialog.c:95
|
||||||
|
msgid "Turkish"
|
||||||
|
msgstr "Turks"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:46
|
||||||
|
msgid "Nordic"
|
||||||
|
msgstr "Noors"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:48
|
||||||
|
msgid "Celtic"
|
||||||
|
msgstr "Celtisch"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:50
|
||||||
|
msgid "Romanian"
|
||||||
|
msgstr "Roemeens"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:51
|
||||||
|
#: ../src/gm-world-properties-dialog.c:52
|
||||||
|
#: ../src/gm-world-properties-dialog.c:53
|
||||||
|
#: ../src/gm-world-properties-dialog.c:54
|
||||||
|
#: ../src/gm-world-properties-dialog.c:55
|
||||||
|
msgid "Unicode"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:56
|
||||||
|
msgid "Armenian"
|
||||||
|
msgstr "Armeens"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:57
|
||||||
|
#: ../src/gm-world-properties-dialog.c:58
|
||||||
|
#: ../src/gm-world-properties-dialog.c:63
|
||||||
|
msgid "Chinese Traditional"
|
||||||
|
msgstr "Chinees-traditioneel"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:59
|
||||||
|
msgid "Cyrillic/Russian"
|
||||||
|
msgstr "Cyrillisch/Russisch"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:61
|
||||||
|
#: ../src/gm-world-properties-dialog.c:77
|
||||||
|
#: ../src/gm-world-properties-dialog.c:85
|
||||||
|
msgid "Japanese"
|
||||||
|
msgstr "Japans"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:62
|
||||||
|
#: ../src/gm-world-properties-dialog.c:78
|
||||||
|
#: ../src/gm-world-properties-dialog.c:80
|
||||||
|
#: ../src/gm-world-properties-dialog.c:88
|
||||||
|
msgid "Korean"
|
||||||
|
msgstr "Koreaans"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:64
|
||||||
|
#: ../src/gm-world-properties-dialog.c:65
|
||||||
|
#: ../src/gm-world-properties-dialog.c:66
|
||||||
|
#: ../src/gm-world-properties-dialog.c:68
|
||||||
|
msgid "Chinese Simplified"
|
||||||
|
msgstr "Chinees-vereenvoudigd"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:67
|
||||||
|
msgid "Georgian"
|
||||||
|
msgstr "Georgisch"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:83
|
||||||
|
msgid "Cyrillic/Ukrainian"
|
||||||
|
msgstr "Cyrillisch/Oekraïens"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:86
|
||||||
|
#: ../src/gm-world-properties-dialog.c:89
|
||||||
|
#: ../src/gm-world-properties-dialog.c:99
|
||||||
|
msgid "Vietnamese"
|
||||||
|
msgstr "Vietnamees"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:87
|
||||||
|
msgid "Thai"
|
||||||
|
msgstr "Thais"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:171
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"<b>%s</b>\n"
|
||||||
|
"Conditions: %d\n"
|
||||||
|
"Actions: %d"
|
||||||
|
msgstr ""
|
||||||
|
"<b>%s</b>\n"
|
||||||
|
"Condities: %d\n"
|
||||||
|
"Acties: %d"
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:341
|
||||||
|
msgid "World properties - "
|
||||||
|
msgstr "Wereld eigenschappen - "
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:471
|
||||||
|
#, c-format
|
||||||
|
msgid "Name can not be %s because a world with that name already exists."
|
||||||
|
msgstr "Naam kan niet %s zijn omdat er al een wereld bestaat met die naam."
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:490
|
||||||
|
msgid "Host can not be empty, please fill in a host."
|
||||||
|
msgstr "Host kan niet leeg zijn, vul alsjeblieft een host in."
|
||||||
|
|
||||||
|
#: ../src/gm-world-properties-dialog.c:630
|
||||||
|
msgid "First select a trigger to remove"
|
||||||
|
msgstr "Selecteer eerst een trigger om te verwijderen"
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:73
|
||||||
|
msgid ""
|
||||||
|
"</b>\n"
|
||||||
|
"Server: "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:74
|
||||||
|
msgid ""
|
||||||
|
"\n"
|
||||||
|
"Player: "
|
||||||
|
msgstr ""
|
||||||
|
"\n"
|
||||||
|
"Speler: "
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:144
|
||||||
|
msgid "Logo"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:150 ../src/gm-world-view.c:109
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Naam"
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:238
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"Can't remove the world %s because it is loaded. First close the world and "
|
||||||
|
"then try again."
|
||||||
|
msgstr ""
|
||||||
|
"De wereld %s kan niet verwijderd worden omdat de wereld nog geladen is. "
|
||||||
|
"Sluit eerst de wereld en probeer dan opnieuw."
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:251
|
||||||
|
msgid "You first need to select a world to delete."
|
||||||
|
msgstr "Je moet eerst de wereld die je wilt verwijderen selecteren."
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:274
|
||||||
|
msgid "You first need to select a world to modify."
|
||||||
|
msgstr "Je moet eerst de wereld die je wilt wijzigen selecteren!"
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:377
|
||||||
|
msgid "You first need to select a world to duplicate."
|
||||||
|
msgstr "Je moet eerst de wereld die je wilt dupliceren selecteren!"
|
||||||
|
|
||||||
|
#: ../src/gm-worlds-list-dialog.c:401
|
||||||
|
msgid "You first need to select a world to connect to."
|
||||||
|
msgstr "Je moet eerst de wereld waarmee je wilt verbinden selecteren."
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:103
|
||||||
|
msgid "I"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:174
|
||||||
|
msgid "Welcome to GnoeMoe, explorer of new worlds!"
|
||||||
|
msgstr "Welkom bij GnoeMoe, verkenner van nieuwe werelden!"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:198 ../ui/gm-world-properties.glade.h:15
|
||||||
|
#: ../ui/gm-world.glade.h:1
|
||||||
|
msgid "World"
|
||||||
|
msgstr "Wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:357
|
||||||
|
#, c-format
|
||||||
|
msgid "# Connect failed: %s"
|
||||||
|
msgstr "# Connectie faalde: %s"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:360
|
||||||
|
#, c-format
|
||||||
|
msgid "# Connection lost... (%s)"
|
||||||
|
msgstr "# Connectie verloren... (%s)"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:363
|
||||||
|
#, c-format
|
||||||
|
msgid "# Error: %s"
|
||||||
|
msgstr "# Fout: %s"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:378
|
||||||
|
#, c-format
|
||||||
|
msgid "# Trying %s port %s"
|
||||||
|
msgstr "# Probeer %s poort %s"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:382
|
||||||
|
#, c-format
|
||||||
|
msgid "# Connecting to %s port %s"
|
||||||
|
msgstr "# Verbinding maken naar %s poort %s"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:385
|
||||||
|
msgid "# Connected"
|
||||||
|
msgstr "# Verbonden"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:388
|
||||||
|
msgid "# Disconnected"
|
||||||
|
msgstr "# Verbinding verbroken"
|
||||||
|
|
||||||
|
#: ../src/gm-world-view.c:391
|
||||||
|
msgid "# Disconnecting"
|
||||||
|
msgstr "# Verbinding verbreken"
|
||||||
|
|
||||||
|
#. Toplevel
|
||||||
|
#: ../src/gm-ui.h:17
|
||||||
|
msgid "_World"
|
||||||
|
msgstr "_Wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:18
|
||||||
|
msgid "_Edit"
|
||||||
|
msgstr "_Bewerken"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:19
|
||||||
|
msgid "_View"
|
||||||
|
msgstr "Beel_d"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:20
|
||||||
|
msgid "_Help"
|
||||||
|
msgstr "_Hulp"
|
||||||
|
|
||||||
|
#. World menu
|
||||||
|
#: ../src/gm-ui.h:23
|
||||||
|
msgid "New World..."
|
||||||
|
msgstr "Nieuwe Wereld..."
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:24
|
||||||
|
msgid "Create a new world"
|
||||||
|
msgstr "Maak een nieuwe wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:26
|
||||||
|
msgid "Quit the program"
|
||||||
|
msgstr "Sluit het programma af"
|
||||||
|
|
||||||
|
#. Edit menu
|
||||||
|
#: ../src/gm-ui.h:29
|
||||||
|
msgid "Worlds..."
|
||||||
|
msgstr "Werelden..."
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:30
|
||||||
|
msgid "Edit worlds"
|
||||||
|
msgstr "Bewerk werelden"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:32
|
||||||
|
msgid "Configure the application"
|
||||||
|
msgstr "Configureer de applicatie"
|
||||||
|
|
||||||
|
#. View menu
|
||||||
|
#: ../src/gm-ui.h:36
|
||||||
|
msgid "MCP"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:37
|
||||||
|
msgid "View MCP console"
|
||||||
|
msgstr "Bekijk MCP console"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:39
|
||||||
|
#, fuzzy
|
||||||
|
msgid "View scripts"
|
||||||
|
msgstr "Bekijk scripts"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:43
|
||||||
|
msgid "About this application"
|
||||||
|
msgstr "Over deze applicatie"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:50
|
||||||
|
msgid "Connect or disconnect the current world"
|
||||||
|
msgstr "Maak of verbreek verbinding met de huidige wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:53
|
||||||
|
msgid "Close current world"
|
||||||
|
msgstr "Sluit de huidige wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:55
|
||||||
|
msgid "View current world logs"
|
||||||
|
msgstr "Bekijk logs van de huidige wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:56
|
||||||
|
msgid "In_fo"
|
||||||
|
msgstr "In_fo"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:57
|
||||||
|
msgid "View current world info"
|
||||||
|
msgstr "Bekijk info van de huidige wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:61
|
||||||
|
msgid "Cut the selection"
|
||||||
|
msgstr "Knip de selectie"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:63
|
||||||
|
msgid "Copy the selection"
|
||||||
|
msgstr "Kopieër de selectie"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:65
|
||||||
|
msgid "Paste the clipboard"
|
||||||
|
msgstr "Plak het klembord"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:66
|
||||||
|
msgid "Current world..."
|
||||||
|
msgstr "Huidige wereld..."
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:67
|
||||||
|
msgid "Edit the current world"
|
||||||
|
msgstr "Bewerk de huidige wereld"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:69
|
||||||
|
msgid "Find text"
|
||||||
|
msgstr "Zoek naar tekst"
|
||||||
|
|
||||||
|
#: ../src/gm-ui.h:71
|
||||||
|
msgid "Search for the next occurence"
|
||||||
|
msgstr "Zoek verder"
|
||||||
|
|
||||||
|
#: ../ui/gm-scripts.glade.h:1
|
||||||
|
msgid "Console"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../ui/gm-scripts.glade.h:2 ../ui/gm-preferences.glade.h:12
|
||||||
|
msgid "Editor"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../ui/gm-scripts.glade.h:3
|
||||||
|
msgid "Overview"
|
||||||
|
msgstr "Overzicht"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:1
|
||||||
|
msgid "Background"
|
||||||
|
msgstr "Achtergrond"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:2
|
||||||
|
msgid "Background:"
|
||||||
|
msgstr "Achtergrond:"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:4
|
||||||
|
msgid "Black High"
|
||||||
|
msgstr "Zwart Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:6
|
||||||
|
msgid "Blue High"
|
||||||
|
msgstr "Blauw Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:7
|
||||||
|
msgid "Bold"
|
||||||
|
msgstr "Vet"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:8
|
||||||
|
msgid "Colors"
|
||||||
|
msgstr "Kleuren"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:10
|
||||||
|
msgid "Cyan High"
|
||||||
|
msgstr "Cyaan Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:11
|
||||||
|
msgid "Default"
|
||||||
|
msgstr "Standaard"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:13
|
||||||
|
msgid "Embed editor into GnoeMoe (implies terminal)"
|
||||||
|
msgstr "Geëmbedde editor (impliceert terminal)"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:14
|
||||||
|
msgid "Font"
|
||||||
|
msgstr "Lettertype"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:15
|
||||||
|
msgid "Font-family:"
|
||||||
|
msgstr "Lettertype:"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:16
|
||||||
|
msgid "Foreground"
|
||||||
|
msgstr "Voorgrond"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:17
|
||||||
|
msgid "Foreground High"
|
||||||
|
msgstr "Voorgrond Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:18
|
||||||
|
msgid "Foreground:"
|
||||||
|
msgstr "Voorgrond:"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:20
|
||||||
|
msgid "Green High"
|
||||||
|
msgstr "Groen Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:21
|
||||||
|
msgid "Italic"
|
||||||
|
msgstr "Schuin"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:22
|
||||||
|
msgid "Needs terminal"
|
||||||
|
msgstr "Terminal nodig"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:23
|
||||||
|
msgid "Preferences"
|
||||||
|
msgstr "Voorkeuren"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:24
|
||||||
|
msgid "Program"
|
||||||
|
msgstr "Programma"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:26
|
||||||
|
msgid "Purple High"
|
||||||
|
msgstr "Paars Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:28
|
||||||
|
msgid "Red High"
|
||||||
|
msgstr "Rood Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:29
|
||||||
|
msgid "Strikethrough"
|
||||||
|
msgstr "Doorstreept"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:30
|
||||||
|
msgid "Underline"
|
||||||
|
msgstr "Onderstreept"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:31
|
||||||
|
msgid "Use alternative editor"
|
||||||
|
msgstr "Gebruik alternatieve editor"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:32
|
||||||
|
msgid "Use high colors for bold text"
|
||||||
|
msgstr "Gebruik felle kleuren voor vette tekst"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:34
|
||||||
|
msgid "White High"
|
||||||
|
msgstr "Wit Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-preferences.glade.h:36
|
||||||
|
msgid "Yellow High"
|
||||||
|
msgstr "Geel Fel"
|
||||||
|
|
||||||
|
#: ../ui/gm-worlds-list.glade.h:1
|
||||||
|
msgid "Worlds listing"
|
||||||
|
msgstr "Werelden lijst"
|
||||||
|
|
||||||
|
#: ../ui/gm-worlds-list.glade.h:2
|
||||||
|
msgid "_Connect"
|
||||||
|
msgstr "_Verbinden"
|
||||||
|
|
||||||
|
#: ../ui/gm-worlds-list.glade.h:3
|
||||||
|
msgid "_Duplicate"
|
||||||
|
msgstr "_Dupliceren"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:1
|
||||||
|
msgid "Auto-login"
|
||||||
|
msgstr "Auto-inloggen"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:2
|
||||||
|
msgid "Autologin"
|
||||||
|
msgstr "Autoinloggen"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:3
|
||||||
|
msgid "Charset:"
|
||||||
|
msgstr "Karakterset:"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:4
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Algemeen"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:5
|
||||||
|
msgid "Host:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:6
|
||||||
|
msgid "Language"
|
||||||
|
msgstr "Taal"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:7
|
||||||
|
msgid "Load on startup"
|
||||||
|
msgstr "Laden bij opstarten"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:8 ../ui/gm-triggers.glade.h:4
|
||||||
|
msgid "Name:"
|
||||||
|
msgstr "Naam:"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:9
|
||||||
|
msgid "Password:"
|
||||||
|
msgstr "Wachtwoord:"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:10
|
||||||
|
msgid "Player name:"
|
||||||
|
msgstr "Speler naam:"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:11
|
||||||
|
msgid "Port:"
|
||||||
|
msgstr "Poort:"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:12
|
||||||
|
msgid "Server"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:13 ../ui/gm-triggers.glade.h:5
|
||||||
|
msgid "Triggers"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:14
|
||||||
|
msgid "Use autoreconnect"
|
||||||
|
msgstr "Gebruik auto-herverbinden"
|
||||||
|
|
||||||
|
#: ../ui/gm-world-properties.glade.h:16
|
||||||
|
msgid "World properties"
|
||||||
|
msgstr "Wereld eigenschappen"
|
||||||
|
|
||||||
|
#: ../ui/gm-triggers.glade.h:1
|
||||||
|
msgid "Actions:"
|
||||||
|
msgstr "Acties:"
|
||||||
|
|
||||||
|
#: ../ui/gm-triggers.glade.h:2
|
||||||
|
msgid "Choose which type of event you want to create a trigger for."
|
||||||
|
msgstr "Kies voor welk type event je een trigger wilt aanmaken."
|
||||||
|
|
||||||
|
#: ../ui/gm-triggers.glade.h:3
|
||||||
|
msgid "Conditions:"
|
||||||
|
msgstr "Condities:"
|
|
@ -0,0 +1,7 @@
|
||||||
|
scriptsdir = $(pkgdatadir)/scripts
|
||||||
|
scripts_DATA = misc.rb \
|
||||||
|
run.rb \
|
||||||
|
editing.rb \
|
||||||
|
music.rb
|
||||||
|
|
||||||
|
EXTRA_DIST = $(scripts_DATA)
|
|
@ -0,0 +1,53 @@
|
||||||
|
=begin
|
||||||
|
editing.rb
|
||||||
|
Copyright (c) 2004 by Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
Defines:
|
||||||
|
e - edit a verb
|
||||||
|
me - edit your description
|
||||||
|
he - edit your locations description
|
||||||
|
de - edit a objects description
|
||||||
|
ne - edit a property
|
||||||
|
=end
|
||||||
|
|
||||||
|
def register_functions
|
||||||
|
$scripts.register("e", "use: /e <obj>:<verb>\nedit a verb", "edit_e")
|
||||||
|
$scripts.register("me", "use: /me\nedit your description", "edit_me")
|
||||||
|
$scripts.register("he", "use: /he\nedit your locations description", "edit_he")
|
||||||
|
$scripts.register("de", "use: /de <obj>\nedit a objects description", "edit_de")
|
||||||
|
$scripts.register("ne", "use: /ne <obj>.<prop>\nedit a property", "edit_ne")
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit_e(argstr)
|
||||||
|
$world.sendln("@edit " + argstr)
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit_me(argstr)
|
||||||
|
$world.sendln("@notedit me.description")
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit_he(argstr)
|
||||||
|
$world.sendln("@notedit here.description")
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit_ne(argstr)
|
||||||
|
$world.sendln("@notedit " + argstr)
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit_de(argstr)
|
||||||
|
$world.sendln("@notedit " + argstr + ".description")
|
||||||
|
end
|
|
@ -0,0 +1,39 @@
|
||||||
|
=begin
|
||||||
|
misc.rb
|
||||||
|
Copyright (c) 2004 by Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
Defines:
|
||||||
|
open - open a world
|
||||||
|
sendall - send all connected worlds the same text
|
||||||
|
=end
|
||||||
|
|
||||||
|
def register_functions
|
||||||
|
$scripts.register("open", "use: /open <worldname>\nopen a world")
|
||||||
|
$scripts.register("sendall", "use: /sendall <some>\nsends <some> to all currently connected worlds")
|
||||||
|
end
|
||||||
|
|
||||||
|
def open(argstr)
|
||||||
|
$client.open(argstr)
|
||||||
|
end
|
||||||
|
|
||||||
|
def sendall(argstr)
|
||||||
|
$client.worlds.each {|wld|
|
||||||
|
if (wld.loaded? && wld.connected?)
|
||||||
|
wld.sendln(argstr)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
end
|
|
@ -0,0 +1,171 @@
|
||||||
|
=begin
|
||||||
|
music.rb
|
||||||
|
Copyright (c) 2004 by Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
Copyright (c) 2004/07/29 by Simon Gijsen <simon@gijsen.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; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
Defines:
|
||||||
|
rb/rhythmbox - show which song rb is currenly playing, control rb
|
||||||
|
xmms/beep - show which song xmms is playing, control xmms (thanks to Simon Gijsen)
|
||||||
|
=end
|
||||||
|
|
||||||
|
def register_functions
|
||||||
|
$scripts.register("rhythmbox", "use: /rhythmbox <prefix>|next|prev|play|pause\nsends the song Rhythmbox is currently playing to the world prefixed by <prefix> or performs the action specified if pause, play, next or prev is specified")
|
||||||
|
$scripts.register("rb", "alias for rhythmbox", "rhythmbox")
|
||||||
|
$scripts.register("xmms", "use: /xmms <prefix>|prev|play|pause|stop|next\nsends the song XMMS is currently playing to the world prefixed by <prefix> or performs the action specified if prev, play, pause, stop or next is specified")
|
||||||
|
$scripts.register("beep", "alias for xmms", "xmms")
|
||||||
|
end
|
||||||
|
|
||||||
|
def getOgginfo(filename)
|
||||||
|
if (!File.exists?("/usr/bin/ogginfo"))
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
info = `/usr/bin/ogginfo "#{filename}" 2> /dev/null`
|
||||||
|
artist = nil
|
||||||
|
title = nil
|
||||||
|
|
||||||
|
if (!info.empty?)
|
||||||
|
info.split("\n").each {|line|
|
||||||
|
line = line.strip
|
||||||
|
if (line[/^artist=/i])
|
||||||
|
artist = line[7..-1]
|
||||||
|
elsif (line[/^title=/i])
|
||||||
|
title = line[6..-1]
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
return "#{artist} - #{title}"
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def getID3info(filename)
|
||||||
|
if (!File.exists?("/usr/bin/id3info"))
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
|
info = `/usr/bin/id3info "#{filename}" 2> /dev/null`.split("\n")
|
||||||
|
artist = nil
|
||||||
|
title = nil
|
||||||
|
|
||||||
|
if (info.length == 1 && info[0].empty? == 0)
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
info.each {|line|
|
||||||
|
line = line.strip
|
||||||
|
if (line.index(/TPE[1|2]/) != nil)
|
||||||
|
artist = line[line.index(":") + 1..-1].strip
|
||||||
|
elsif (line.index("TIT2") != nil)
|
||||||
|
title = line[line.index(":") + 1..-1].strip
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
if (title && artist)
|
||||||
|
return "#{artist} - #{title}"
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def getMP3info(filename)
|
||||||
|
if ((info = getID3info(filename)))
|
||||||
|
return info
|
||||||
|
end
|
||||||
|
|
||||||
|
if (!File.exists?("/usr/bin/mp3info"))
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
info = `/usr/bin/mp3info -p "%a - %t" "#{filename}" 2> /dev/null`
|
||||||
|
|
||||||
|
if (!info.empty?)
|
||||||
|
return info
|
||||||
|
else
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def rhythmbox(argstr)
|
||||||
|
isopen = !(`/bin/ps -ae | /bin/grep rhythmbox`.empty?)
|
||||||
|
|
||||||
|
if (!isopen)
|
||||||
|
$world.writeln("Script error: rhythmbox is not running!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if (argstr == "next")
|
||||||
|
`/usr/bin/rhythmbox --next`
|
||||||
|
elsif (argstr == "prev")
|
||||||
|
`/usr/bin/rhythmbox --previous`
|
||||||
|
elsif (argstr == "play" || argstr == "pause")
|
||||||
|
`/usr/bin/rhythmbox --play-pause`
|
||||||
|
else
|
||||||
|
path = `/usr/bin/rhythmbox --print-playing-path 2> /dev/null`
|
||||||
|
info = nil
|
||||||
|
|
||||||
|
if (!path.empty?)
|
||||||
|
filename = path.split("\n")[0].gsub(/%20/, " ")[7..-1]
|
||||||
|
|
||||||
|
if (filename[-3..-1] == "mp3" && (info = getMP3info(filename)))
|
||||||
|
elsif (filename[-3..-1] == "ogg" && (info = getOgginfo(filename)))
|
||||||
|
else
|
||||||
|
info = `/usr/bin/rhythmbox --print-playing 2> /dev/null`
|
||||||
|
|
||||||
|
if (!info.empty?)
|
||||||
|
info = info.split("\n")[0]
|
||||||
|
else
|
||||||
|
info = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if (info)
|
||||||
|
$world.sendln(argstr + " :luistert op dit moment naar [ #{info} ]")
|
||||||
|
else
|
||||||
|
$world.writeln("Script error: cannot retrieve rhythmbox file play")
|
||||||
|
end
|
||||||
|
|
||||||
|
else
|
||||||
|
$world.writeln("Script error: can not execute /usr/bin/rhythmbox!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def xmms(argstr)
|
||||||
|
case argstr
|
||||||
|
when "prev", "play", "pause", "stop", "next"
|
||||||
|
io = IO.popen("/usr/bin/xmms-shell -e " + argstr + " 2>&1")
|
||||||
|
line = io.gets
|
||||||
|
io.close
|
||||||
|
else
|
||||||
|
line = `/usr/bin/xmms-shell -e current-track 2>&1`
|
||||||
|
end
|
||||||
|
|
||||||
|
if (line[0..18] === "XMMS is not running")
|
||||||
|
$world.writeln("Script error: " + line[0..-2])
|
||||||
|
elsif(line[0..3] === "sh: ")
|
||||||
|
$world.writeln("Script error: " + line[12..-2])
|
||||||
|
elsif(line[0..12] === "Current song:")
|
||||||
|
index = line.index('.') + 2
|
||||||
|
$world.sendln(argstr + " emote luistert op dit moment naar [ " + line[index..-2] + " ]")
|
||||||
|
else
|
||||||
|
line2 = `/usr/bin/xmms-shell -e current-track 2>&1`
|
||||||
|
index = line2.index('.') + 2
|
||||||
|
$world.writeln(line[0..-2] + " [ " + line2[index..-2] + " ]")
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,65 @@
|
||||||
|
=begin
|
||||||
|
run.rb
|
||||||
|
Copyright (c) 2004 by Jesse van den Kieboom <jesse@icecrew.nl>
|
||||||
|
|
||||||
|
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
Defines:
|
||||||
|
run - open a world
|
||||||
|
crun - send all connected worlds the same text
|
||||||
|
=end
|
||||||
|
|
||||||
|
def register_functions
|
||||||
|
$scripts.register("run", "use: /run <command>\nruns <command> in a subshell and sends output to the world")
|
||||||
|
$scripts.register("crun", "use: /crun <channel> <command>\nsame as /run except it sends output to a channel")
|
||||||
|
end
|
||||||
|
|
||||||
|
def run(argstr)
|
||||||
|
io = IO.popen(argstr)
|
||||||
|
|
||||||
|
if (io)
|
||||||
|
$world.sendln(":LINUXes `" + argstr + "`")
|
||||||
|
|
||||||
|
while ((l = io.gets))
|
||||||
|
$world.sendln("emote | " + l[0..-2])
|
||||||
|
end
|
||||||
|
|
||||||
|
io.close
|
||||||
|
else
|
||||||
|
$world.writeln("Script error: can not execute #{argstr}!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def crun(argstr)
|
||||||
|
ar = argstr.split(" ", 2)
|
||||||
|
|
||||||
|
if (ar.length != 2)
|
||||||
|
$world.writeln("Script error: use /crun <chanalias> <command>")
|
||||||
|
else
|
||||||
|
io = IO.popen(ar[1])
|
||||||
|
|
||||||
|
if (io)
|
||||||
|
$world.sendln(ar[0] + " :LINUXes `" + ar[1] + "`")
|
||||||
|
|
||||||
|
while ((l = io.gets))
|
||||||
|
$world.sendln(ar[0] + " :| " + l[0..-2])
|
||||||
|
end
|
||||||
|
|
||||||
|
io.close
|
||||||
|
else
|
||||||
|
$world.writeln("Script error: can not execute #{ar[1]}!")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,47 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
SUBDIRS = test
|
||||||
|
INCLUDES = \
|
||||||
|
-DPACKAGE_DATA_DIR=\""$(datadir)"\" \
|
||||||
|
-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
|
||||||
|
@PACKAGE_CFLAGS@ \
|
||||||
|
@RUBYINCLUDE@
|
||||||
|
|
||||||
|
bin_PROGRAMS = gnoemoe
|
||||||
|
BUILT_SOURCES = gm-marshal.c gm-marshal.h
|
||||||
|
|
||||||
|
gnoemoe_SOURCES = $(BUILT_SOURCES) \
|
||||||
|
gm-app.c gm-app.h gm-app-view.c gm-app-view.h \
|
||||||
|
gm-options.c gm-options.h gm-color-table.c gm-color-table.h \
|
||||||
|
gm-net.c gm-net.h gm-triggers.c gm-triggers.h \
|
||||||
|
gm-world.c gm-world.h gm-world-view.c gm-world-view.h \
|
||||||
|
gm-world-tab.c gm-world-tab.h \
|
||||||
|
gm-world-text-view.c gm-world-text-view.h \
|
||||||
|
gm-string.c gm-string.h gm-support.c gm-support.h \
|
||||||
|
gm-editor.c gm-editor.h \
|
||||||
|
gm-world-input-view.c gm-world-input-view.h \
|
||||||
|
gm-pixbuf.c gm-pixbuf.h debug.c debug.h \
|
||||||
|
gm-world-info-dialog.c gm-world-info-dialog.h \
|
||||||
|
gm-world-logs-dialog.c gm-world-logs-dialog.h \
|
||||||
|
gm-worlds-list-dialog.c gm-worlds-list-dialog.h \
|
||||||
|
gm-world-properties-dialog.c gm-world-properties-dialog.h \
|
||||||
|
gm-triggers-dialog.c gm-triggers-dialog.h \
|
||||||
|
gm-scripts-dialog.c gm-scripts-dialog.h
|
||||||
|
|
||||||
|
if HAVE_SCRIPT
|
||||||
|
gnoemoe_SOURCES += gm-scripts.c gm-scripts.h
|
||||||
|
endif
|
||||||
|
gm-marshal.h: gm-marshal.list $(GLIB_GENMARSHAL)
|
||||||
|
$(GLIB_GENMARSHAL) $< --header --prefix=gm_marshal > $@
|
||||||
|
|
||||||
|
gm-marshal.c: gm-marshal.list $(GLIB_GENMARSHAL)
|
||||||
|
echo "#include \"gm-marshal.h\"" > $@ && \
|
||||||
|
$(GLIB_GENMARSHAL) $< --body --prefix=gm_marshal >> $@
|
||||||
|
|
||||||
|
gnoemoe_LDADD = @PACKAGE_LIBS@ $(INTLLIBS) @RUBYLINK@
|
||||||
|
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
|
||||||
|
dist-hook:
|
||||||
|
cd $(distdir); rm -f $(BUILT_SOURCES)
|
||||||
|
|
||||||
|
AM_CFLAGS = -Werror -Wall -Wsign-compare
|
|
@ -0,0 +1,124 @@
|
||||||
|
#ifndef ANSI_H
|
||||||
|
#define ANSI_H
|
||||||
|
|
||||||
|
/** \defgroup ansi
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** \brief enum indicating ansi code
|
||||||
|
*
|
||||||
|
* Enumeration which indicates the ansi code
|
||||||
|
*/
|
||||||
|
typedef enum _ansi_code {
|
||||||
|
A_DEFAULT = 0, /**< default (reset all attributes) */
|
||||||
|
A_BOLD = 1, /**< bold text */
|
||||||
|
A_FAINT = 2, /**< faint text */
|
||||||
|
A_ITALIC = 3, /**< italic text */
|
||||||
|
A_UNDERLINE = 4, /**< underlined text */
|
||||||
|
A_INVERSE = 7, /**< inverse foreground/background colors */
|
||||||
|
A_INVISIBLE = 8, /**< invisible text */
|
||||||
|
A_CROSSOUT = 9, /**< crossed out text */
|
||||||
|
A_DOUBLE_UNDERLINE = 21, /**< double underlined text */
|
||||||
|
|
||||||
|
A_BOLD_OFF = 22, /**< text no longer bold */
|
||||||
|
A_ITALIC_OFF = 23, /**< text no longer italic */
|
||||||
|
A_UNDERLINE_OFF = 24, /**< text no longer underlined */
|
||||||
|
A_INVERSE_OFF = 27, /**< text no longer inversed */
|
||||||
|
A_INVISIBLE_OFF = 28, /**< text no longer invisible */
|
||||||
|
A_CROSSOUT_OFF = 29, /**< text no longer crossed out */
|
||||||
|
|
||||||
|
A_FG_BLACK = 30, /**< foreground color black */
|
||||||
|
A_FG_RED = 31, /**< foreground color red */
|
||||||
|
A_FG_GREEN = 32, /**< foreground color green */
|
||||||
|
A_FG_YELLOW = 33, /**< foreground color yellow */
|
||||||
|
A_FG_BLUE = 34, /**< foreground color blue */
|
||||||
|
A_FG_PURPLE = 35, /**< foreground color purple */
|
||||||
|
A_FG_CYAN = 36, /**< foreground color cyan */
|
||||||
|
A_FG_WHITE = 37, /**< foreground color white */
|
||||||
|
A_FG_DEFAULT = 39, /**< foreground color default */
|
||||||
|
|
||||||
|
A_BG_BLACK = 40, /**< background color black */
|
||||||
|
A_BG_RED = 41, /**< background color red */
|
||||||
|
A_BG_GREEN = 42, /**< background color green */
|
||||||
|
A_BG_YELLOW = 43, /**< background color yellow */
|
||||||
|
A_BG_BLUE = 44, /**< background color blue */
|
||||||
|
A_BG_PURPLE = 45, /**< background color purple */
|
||||||
|
A_BG_CYAN = 46, /**< background color cyan */
|
||||||
|
A_BG_WHITE = 47, /**< background color white */
|
||||||
|
A_BG_DEFAULT = 49, /**< background color default */
|
||||||
|
|
||||||
|
A_NOWRAP = 50, /**< do not wrap this text */
|
||||||
|
|
||||||
|
A_FG_BLACK_H, /**< foreground color black high */
|
||||||
|
A_FG_RED_H, /**< foreground color red high */
|
||||||
|
A_FG_GREEN_H, /**< foreground color green high */
|
||||||
|
A_FG_YELLOW_H, /**< foreground color yellow high */
|
||||||
|
A_FG_BLUE_H, /**< foreground color blue high */
|
||||||
|
A_FG_PURPLE_H, /**< foreground color purple high */
|
||||||
|
A_FG_CYAN_H, /**< foreground color cyan high */
|
||||||
|
A_FG_WHITE_H, /**< foreground color white high */
|
||||||
|
A_FG_DEFAULT_H /**< foreground color default high */
|
||||||
|
} ansi_code;
|
||||||
|
|
||||||
|
/** \brief struct for containing ansi-name pair
|
||||||
|
*
|
||||||
|
* Struct can be used to create a code to name to code mapping
|
||||||
|
*/
|
||||||
|
typedef struct _ansinamepair {
|
||||||
|
const ansi_code code; /**< the ansi code */
|
||||||
|
const char *name; /**< the ansi name */
|
||||||
|
} ansinamepair;
|
||||||
|
|
||||||
|
/** \brief array containing color code/name mapping
|
||||||
|
*
|
||||||
|
* Array which can be used for color code/name mapping
|
||||||
|
*/
|
||||||
|
static const ansinamepair ansi_colors[] = {
|
||||||
|
{A_FG_BLACK, "fg_black"},
|
||||||
|
{A_FG_RED, "fg_red"},
|
||||||
|
{A_FG_GREEN, "fg_green"},
|
||||||
|
{A_FG_YELLOW, "fg_yellow"},
|
||||||
|
{A_FG_BLUE, "fg_blue"},
|
||||||
|
{A_FG_PURPLE, "fg_purple"},
|
||||||
|
{A_FG_CYAN, "fg_cyan"},
|
||||||
|
{A_FG_WHITE, "fg_white"},
|
||||||
|
{A_FG_DEFAULT, "fg_default"},
|
||||||
|
{A_FG_BLACK_H, "fg_black_h"},
|
||||||
|
{A_FG_RED_H, "fg_red_h"},
|
||||||
|
{A_FG_GREEN_H, "fg_green_h"},
|
||||||
|
{A_FG_YELLOW_H, "fg_yellow_h"},
|
||||||
|
{A_FG_BLUE_H, "fg_blue_h"},
|
||||||
|
{A_FG_PURPLE_H, "fg_purple_h"},
|
||||||
|
{A_FG_CYAN_H, "fg_cyan_h"},
|
||||||
|
{A_FG_WHITE_H, "fg_white_h"},
|
||||||
|
{A_FG_DEFAULT_H, "fg_default_h"},
|
||||||
|
{A_BG_BLACK, "bg_black"},
|
||||||
|
{A_BG_RED, "bg_red"},
|
||||||
|
{A_BG_GREEN, "bg_green"},
|
||||||
|
{A_BG_YELLOW, "bg_yellow"},
|
||||||
|
{A_BG_BLUE, "bg_blue"},
|
||||||
|
{A_BG_PURPLE, "bg_purple"},
|
||||||
|
{A_BG_CYAN, "bg_cyan"},
|
||||||
|
{A_BG_WHITE, "bg_white"},
|
||||||
|
{A_BG_DEFAULT, "bg_default"}
|
||||||
|
};
|
||||||
|
|
||||||
|
/** \brief array containing style code/name mapping
|
||||||
|
*
|
||||||
|
* Array which can be used for style code/name mapping
|
||||||
|
*/
|
||||||
|
static const ansinamepair ansi_styles[] = {
|
||||||
|
{A_BOLD, "bold"},
|
||||||
|
{A_FAINT, "faint"},
|
||||||
|
{A_BOLD_OFF, "bold-off"},
|
||||||
|
{A_UNDERLINE, "underline"},
|
||||||
|
{A_DOUBLE_UNDERLINE, "dblunderline"},
|
||||||
|
{A_UNDERLINE_OFF, "underline-off"},
|
||||||
|
{A_CROSSOUT, "crossout"},
|
||||||
|
{A_CROSSOUT_OFF, "crossout-off"},
|
||||||
|
{A_ITALIC, "italic"},
|
||||||
|
{A_ITALIC_OFF, "italic-off"}
|
||||||
|
};
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
#endif
|
|
@ -0,0 +1,39 @@
|
||||||
|
#include <time.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
int dbgLevel = 0;
|
||||||
|
|
||||||
|
void
|
||||||
|
debug_msg(int level, char *line, ...) {
|
||||||
|
struct tm *timet;
|
||||||
|
time_t timer;
|
||||||
|
va_list args;
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
if (dbgLevel >= level) {
|
||||||
|
va_start(args, line);
|
||||||
|
timer = time(0);
|
||||||
|
timet = localtime(&timer);
|
||||||
|
|
||||||
|
if (level == 0) {
|
||||||
|
f = stdout;
|
||||||
|
} else {
|
||||||
|
f = stderr;
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(f, "[%02d:%02d:%02d] # ", timet->tm_hour, timet->tm_min,
|
||||||
|
timet->tm_sec);
|
||||||
|
vfprintf(f, line, args);
|
||||||
|
printf("\n");
|
||||||
|
va_end(args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
debug_set_level(int level) {
|
||||||
|
dbgLevel = level;
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
#ifndef DEBUG_H
|
||||||
|
#define DEBUG_H 1
|
||||||
|
|
||||||
|
void debug_msg(int level, char *line, ...);
|
||||||
|
void debug_set_level(int level);
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
#!/usr/bin/ruby
|
||||||
|
|
||||||
|
def replaceAll(line, subst)
|
||||||
|
subst.each do |sub,rep|
|
||||||
|
line = line.gsub('{' + sub + '}', rep)
|
||||||
|
end
|
||||||
|
|
||||||
|
return line
|
||||||
|
end
|
||||||
|
|
||||||
|
def degenerateCaps(text)
|
||||||
|
text = text.gsub(/[A-Z]+[a-z]+/) do |s|
|
||||||
|
s.downcase + '_'
|
||||||
|
end
|
||||||
|
|
||||||
|
return text[0..-2]
|
||||||
|
end
|
||||||
|
|
||||||
|
subst = {}
|
||||||
|
name = ARGV[0]
|
||||||
|
parent = ARGV[1]
|
||||||
|
|
||||||
|
if (name == nil) then
|
||||||
|
print "Class name (capitalized): "
|
||||||
|
name = gets[0..-2]
|
||||||
|
end
|
||||||
|
|
||||||
|
subst['template_'] = degenerateCaps(name)
|
||||||
|
subst['template-'] = subst['template_'].sub('_', '-')
|
||||||
|
subst['TEMPLATE'] = subst['template_'].upcase
|
||||||
|
subst['Template'] = name
|
||||||
|
|
||||||
|
if (parent == nil) then
|
||||||
|
print "Parent name (capitalized): "
|
||||||
|
parent = gets[0..-2]
|
||||||
|
end
|
||||||
|
|
||||||
|
subst['parent_'] = degenerateCaps(parent)
|
||||||
|
subst['parent-'] = subst['parent_'].sub('_', '-')
|
||||||
|
subst['PARENT'] = subst['parent_'].upcase
|
||||||
|
subst['Parent'] = parent
|
||||||
|
|
||||||
|
tc = IO.readlines("gtktemplate.c")
|
||||||
|
th = IO.readlines("gtktemplate.h")
|
||||||
|
|
||||||
|
f = File.open('gm-' + subst['template-'] + '.c', 'w')
|
||||||
|
tc.each do |line|
|
||||||
|
f.write(replaceAll(line, subst))
|
||||||
|
end
|
||||||
|
f.close
|
||||||
|
|
||||||
|
f = File.open('gm-' + subst['template-'] + '.h', 'w')
|
||||||
|
th.each do |line|
|
||||||
|
f.write(replaceAll(line, subst))
|
||||||
|
end
|
||||||
|
f.close
|
||||||
|
|
||||||
|
print "Done ...\n"
|
|
@ -0,0 +1,77 @@
|
||||||
|
#ifndef __GM_APP_VIEW_H__
|
||||||
|
#define __GM_APP_VIEW_H__
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <glib.h>
|
||||||
|
#include <glade/glade.h>
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-app.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_APP_VIEW (gm_app_view_get_type())
|
||||||
|
#define GM_APP_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_APP_VIEW, GmAppView))
|
||||||
|
#define GM_APP_VIEW_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_APP_VIEW, GmAppView const))
|
||||||
|
#define GM_APP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GM_TYPE_APP_VIEW, GmAppViewClass))
|
||||||
|
#define GM_IS_APP_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GM_TYPE_APP_VIEW))
|
||||||
|
#define GM_IS_APP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_TYPE_APP_VIEW))
|
||||||
|
#define GM_APP_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GM_TYPE_APP_VIEW, GmAppViewClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmAppViewPrivate GmAppViewPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmAppView GmAppView;
|
||||||
|
|
||||||
|
struct _GmAppView {
|
||||||
|
GtkWindow window;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmAppViewPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmAppViewClass GmAppViewClass;
|
||||||
|
|
||||||
|
struct _GmAppViewClass {
|
||||||
|
GtkWindowClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_app_view_get_type(void) G_GNUC_CONST;
|
||||||
|
GmAppView *gm_app_view_new(GmApp *application);
|
||||||
|
|
||||||
|
/* Callbacks */
|
||||||
|
void on_gm_app_view_world_new(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_world_connect(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_world_logs(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_world_info(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_world_close(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_world_quit(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
|
||||||
|
void on_gm_app_view_edit_cut(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_copy(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_paste(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_worlds(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_world(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_find(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_find_next(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_edit_preferences(
|
||||||
|
GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
|
||||||
|
void on_gm_app_view_view_mcp(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
void on_gm_app_view_view_scripts(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
|
||||||
|
void on_gm_app_view_help_about(GtkMenuItem * menuitem, GmAppView *view);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __GM_APP_VIEW__ */
|
|
@ -0,0 +1,587 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <libgnome/libgnome.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs.h>
|
||||||
|
#include <libgnomeui/libgnomeui.h>
|
||||||
|
|
||||||
|
#include "gm-app-view.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-color-table.h"
|
||||||
|
|
||||||
|
//#include "mcp/mcp.h"
|
||||||
|
#include "gm-app.h"
|
||||||
|
//#include "editor.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-pixbuf.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
#include "gm-scripts.h"
|
||||||
|
|
||||||
|
static int debug_level = 0;
|
||||||
|
static gboolean show_version = FALSE;
|
||||||
|
static gboolean recover = FALSE;
|
||||||
|
static gchar *load_worlds = NULL;
|
||||||
|
static GmApp *application;
|
||||||
|
|
||||||
|
//static void gm_app_tray_create(tray_info *t);
|
||||||
|
//gboolean on_gm_app_tray_button_press(GtkWidget *widget, GdkEventButton *event,
|
||||||
|
// gpointer user_data);
|
||||||
|
//gboolean on_gm_app_tray_destroy(GtkWidget *widget, gpointer user_data);
|
||||||
|
void on_gm_app_view_size_allocate(GmAppView *view, GtkAllocation *allocation,
|
||||||
|
GmApp *app);
|
||||||
|
|
||||||
|
struct poptOption poptions[] = {
|
||||||
|
{
|
||||||
|
"debug",
|
||||||
|
'd',
|
||||||
|
POPT_ARG_INT,
|
||||||
|
&debug_level,
|
||||||
|
0,
|
||||||
|
N_
|
||||||
|
("Enable debugging. Debugging can be done in different depth levels, each "
|
||||||
|
"level inherits all messages from the levels below: "
|
||||||
|
"0 = None, 1 = Default and 2 = MCP"),
|
||||||
|
N_("DBGGLEVEL")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version",
|
||||||
|
'v',
|
||||||
|
POPT_ARG_NONE,
|
||||||
|
&show_version,
|
||||||
|
0,
|
||||||
|
N_("Show application version"),
|
||||||
|
NULL},
|
||||||
|
{
|
||||||
|
"load",
|
||||||
|
'l',
|
||||||
|
POPT_ARG_STRING,
|
||||||
|
&load_worlds,
|
||||||
|
0,
|
||||||
|
N_("Load specified worlds, seperated by a `,'"),
|
||||||
|
N_("WORLDS")},
|
||||||
|
{
|
||||||
|
"recover",
|
||||||
|
'r',
|
||||||
|
POPT_ARG_NONE,
|
||||||
|
&recover,
|
||||||
|
0,
|
||||||
|
N_("Recover from previous session (used with gnome session)"),
|
||||||
|
NULL},
|
||||||
|
{
|
||||||
|
NULL,
|
||||||
|
'\0',
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define GM_APP_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), \
|
||||||
|
GM_TYPE_APP, GmAppPrivate))
|
||||||
|
void gm_app_destroy_worlds(GmApp *app);
|
||||||
|
|
||||||
|
struct _GmAppPrivate {
|
||||||
|
gchar *path;
|
||||||
|
gchar *worlds_path;
|
||||||
|
gchar *options_path;
|
||||||
|
|
||||||
|
GmAppView *view;
|
||||||
|
GmOptions *options;
|
||||||
|
GmColorTable *color_table;
|
||||||
|
GnomeClient *client;
|
||||||
|
GList *worlds;
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
GmScripts *scripts;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//tray_info tray;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
WORLD_ADDED,
|
||||||
|
WORLD_REMOVED,
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint app_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmApp, gm_app, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_app_finalize(GObject *object) {
|
||||||
|
GmApp *app = GM_APP(object);
|
||||||
|
|
||||||
|
gnome_vfs_shutdown();
|
||||||
|
//mcp_fini();
|
||||||
|
//editor_fini();
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
g_object_unref(app->priv->scripts);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//mcpconsole_fini();
|
||||||
|
gm_app_destroy_worlds(app);
|
||||||
|
gm_pixbuf_fini();
|
||||||
|
|
||||||
|
gm_options_save(app->priv->options);
|
||||||
|
g_object_unref(app->priv->options);
|
||||||
|
g_object_unref(app->priv->color_table);
|
||||||
|
|
||||||
|
g_free(app->priv->path);
|
||||||
|
g_free(app->priv->worlds_path);
|
||||||
|
g_free(app->priv->options_path);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_app_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_app_class_init(GmAppClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_app_finalize;
|
||||||
|
|
||||||
|
app_signals[WORLD_ADDED] =
|
||||||
|
g_signal_new("world_added",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmAppClass, world_added),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__POINTER,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
|
||||||
|
app_signals[WORLD_REMOVED] =
|
||||||
|
g_signal_new("world_removed",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmAppClass, world_removed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__POINTER,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmAppPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_app_init(GmApp *app) {
|
||||||
|
app->priv = GM_APP_GET_PRIVATE(app);
|
||||||
|
|
||||||
|
app->priv->path = NULL;
|
||||||
|
app->priv->worlds_path = NULL;
|
||||||
|
app->priv->options_path = NULL;
|
||||||
|
app->priv->options = NULL;
|
||||||
|
app->priv->client = NULL;
|
||||||
|
app->priv->worlds = NULL;
|
||||||
|
|
||||||
|
//gm_app_tray_create(&(app->priv->tray));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Private functions */
|
||||||
|
void
|
||||||
|
gm_app_destroy_worlds(GmApp *app) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_gm_app_session_die(GnomeClient * client, gpointer client_data) {
|
||||||
|
gtk_main_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*static void
|
||||||
|
gm_app_tray_create(tray_info *t) {
|
||||||
|
t->flash_timeout = 0;
|
||||||
|
t->icon = egg_tray_icon_new(_("GnoeMoe Gnome MOO Client"));
|
||||||
|
t->event_box = gtk_event_box_new();
|
||||||
|
|
||||||
|
t->iconnr = TRAY_ICON_DEFAULT;
|
||||||
|
t->image = gtk_image_new_from_pixbuf(
|
||||||
|
gnoe_pixbuf_get("tray/default.svg"));
|
||||||
|
|
||||||
|
gtk_container_add(GTK_CONTAINER(t->event_box), t->image);
|
||||||
|
t->tooltips = gtk_tooltips_new();
|
||||||
|
|
||||||
|
gtk_widget_show(t->event_box);
|
||||||
|
gtk_widget_show(t->image);
|
||||||
|
|
||||||
|
gtk_container_add(GTK_CONTAINER(t->icon), t->event_box);
|
||||||
|
gtk_widget_show(GTK_WIDGET(t->icon));
|
||||||
|
|
||||||
|
gtk_widget_add_events(GTK_WIDGET(t->icon), GDK_BUTTON_PRESS_MASK);
|
||||||
|
|
||||||
|
g_signal_connect(t->icon, "button_press_event",
|
||||||
|
G_CALLBACK(on_gm_app_tray_button_press), NULL);
|
||||||
|
|
||||||
|
// Handles when the area is removed from the panel.
|
||||||
|
g_signal_connect(t->icon, "destroy", G_CALLBACK(on_gm_app_tray_destroy),
|
||||||
|
t->event_box);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
on_gm_app_save_session(GnomeClient * client, gint phase,
|
||||||
|
GnomeSaveStyle save_style, gint is_shutdown,
|
||||||
|
GnomeInteractStyle interact_style, gint is_fast, gchar ** client_data) {
|
||||||
|
gchar **argv;
|
||||||
|
gint argc = sizeof(client_data) / sizeof(gchar *) + 1;
|
||||||
|
int i;
|
||||||
|
GString *ws = g_string_new("");
|
||||||
|
GList *elem, *list;
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
argv = g_new(gchar *, argc);
|
||||||
|
argv[0] = client_data[0];
|
||||||
|
argv[1] = "--recover";
|
||||||
|
|
||||||
|
for (i = 1; i < argc - 1; i++) {
|
||||||
|
argv[i + 1] = client_data[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
gnome_client_set_clone_command(client, argc, argv);
|
||||||
|
gnome_client_set_restart_command(client, argc, argv);
|
||||||
|
|
||||||
|
// Saving worlds state
|
||||||
|
list = gm_app_worlds(application);
|
||||||
|
|
||||||
|
for (elem = list; elem; elem = elem->next) {
|
||||||
|
world = (GmWorld *) (elem->data);
|
||||||
|
|
||||||
|
if (gm_world_loaded(world)) {
|
||||||
|
if (strlen(ws->str) != 0) {
|
||||||
|
ws = g_string_append_c(ws, ';');
|
||||||
|
}
|
||||||
|
|
||||||
|
ws = g_string_append(ws, gm_world_name(world));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(list);
|
||||||
|
gm_options_set(gm_app_options(application), "worlds_saved_state", ws->str);
|
||||||
|
gm_options_save(gm_app_options(application));
|
||||||
|
g_string_free(ws, TRUE);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_app_create_settings(GmApp *app) {
|
||||||
|
app->priv->options = gm_options_new();
|
||||||
|
|
||||||
|
gm_options_set(app->priv->options, "editor_alternative", "0");
|
||||||
|
gm_options_set(app->priv->options, "editor_embed", "0");
|
||||||
|
gm_options_set(app->priv->options, "editor_needs_terminal", "0");
|
||||||
|
gm_options_set(app->priv->options, "font-family", "Monospace 8");
|
||||||
|
gm_options_set(app->priv->options, "worlds_saved_state", "");
|
||||||
|
gm_options_set(app->priv->options, "search_direction", "1");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_app_load_worlds(GmApp *app, gboolean autoload) {
|
||||||
|
GDir *handle = g_dir_open(app->priv->worlds_path, 0, NULL);
|
||||||
|
char *name, *path;
|
||||||
|
GmWorld *new_world;
|
||||||
|
|
||||||
|
if (handle != NULL) {
|
||||||
|
while ((name = (char *) g_dir_read_name(handle)) != NULL) {
|
||||||
|
path = g_strconcat(app->priv->worlds_path, G_DIR_SEPARATOR_S,
|
||||||
|
name, NULL);
|
||||||
|
|
||||||
|
if (g_file_test(path, G_FILE_TEST_IS_DIR)) {
|
||||||
|
new_world = gm_world_new(path);
|
||||||
|
|
||||||
|
if (new_world != NULL) {
|
||||||
|
gm_app_add_world(app, new_world);
|
||||||
|
|
||||||
|
if (autoload && gm_options_get_int(
|
||||||
|
gm_world_options(new_world), "autoload")) {
|
||||||
|
gm_world_load(new_world);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
debug_msg(0, "Nee: %s", path);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_dir_close(handle);
|
||||||
|
} else {
|
||||||
|
debug_msg(1, "GmApp.load_worlds: failed to open worlds path %s",
|
||||||
|
app->priv->path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_app_initialize(GmApp *app) {
|
||||||
|
debug_set_level(debug_level);
|
||||||
|
|
||||||
|
app->priv->worlds_path = g_strconcat(app->priv->path, G_DIR_SEPARATOR_S,
|
||||||
|
"worlds", NULL);
|
||||||
|
app->priv->options_path = g_strconcat(app->priv->path, G_DIR_SEPARATOR_S,
|
||||||
|
"settings", NULL);
|
||||||
|
|
||||||
|
if (!g_file_test(app->priv->path, G_FILE_TEST_EXISTS)) {
|
||||||
|
mkdir(app->priv->path, 0755);
|
||||||
|
mkdir(app->priv->worlds_path, 0755);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
app->priv->scripts = gm_scripts_new();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Create the main view */
|
||||||
|
gm_app_create_settings(app);
|
||||||
|
gm_options_load(app->priv->options, app->priv->options_path);
|
||||||
|
app->priv->color_table =
|
||||||
|
gm_color_table_new_from_options(app->priv->options);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_app_run(GmApp *app) {
|
||||||
|
gchar **wrlds;
|
||||||
|
const gchar *savedState;
|
||||||
|
int i = 0;
|
||||||
|
GmWorld *world;
|
||||||
|
int width, height;
|
||||||
|
|
||||||
|
app->priv->view = gm_app_view_new(app);
|
||||||
|
|
||||||
|
width = gm_options_get_int(app->priv->options, "width");
|
||||||
|
height = gm_options_get_int(app->priv->options, "height");
|
||||||
|
|
||||||
|
if (height > 10 && width > 10) {
|
||||||
|
gtk_window_set_default_size(GTK_WINDOW(app->priv->view), width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_show(GTK_WIDGET(app->priv->view));
|
||||||
|
|
||||||
|
//mcpconsole_init();
|
||||||
|
|
||||||
|
g_signal_connect(app->priv->view, "size_allocate",
|
||||||
|
G_CALLBACK(on_gm_app_view_size_allocate), app);
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
gm_scripts_load(app->priv->scripts);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
gm_app_load_worlds(app, !(recover || load_worlds));
|
||||||
|
|
||||||
|
if (recover) {
|
||||||
|
savedState = gm_options_get(app->priv->options, "worlds_saved_state");
|
||||||
|
|
||||||
|
if (strlen(savedState) != 0) {
|
||||||
|
wrlds = g_strsplit(savedState, ";", -1);
|
||||||
|
|
||||||
|
for (i = 0; wrlds[i]; i++) {
|
||||||
|
if (strlen(wrlds[i]) != 0) {
|
||||||
|
world = gm_app_world_by_name(app, wrlds[i]);
|
||||||
|
|
||||||
|
if (world) {
|
||||||
|
gm_world_load(world);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_strfreev(wrlds);
|
||||||
|
}
|
||||||
|
} else if (load_worlds) {
|
||||||
|
wrlds = g_strsplit(load_worlds, ",", -1);
|
||||||
|
|
||||||
|
for (i = 0; wrlds[i]; i++) {
|
||||||
|
world = gm_app_world_by_name(app, wrlds[i]);
|
||||||
|
|
||||||
|
if (world) {
|
||||||
|
gm_world_load(world);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_strfreev(wrlds);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_main();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Public functions */
|
||||||
|
GmApp *
|
||||||
|
gm_app_new(int argc, char *argv[]) {
|
||||||
|
GmApp *app = GM_APP(g_object_new(GM_TYPE_APP, NULL));
|
||||||
|
|
||||||
|
app->priv->path = gnome_util_home_file("gnoemoe");
|
||||||
|
|
||||||
|
if (!app->priv->path) {
|
||||||
|
printf(_("GnoeMoe Application: there is no application directory, "
|
||||||
|
"this is very bad!!!\n"));
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_NLS
|
||||||
|
bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
|
||||||
|
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
||||||
|
textdomain(GETTEXT_PACKAGE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
gtk_set_locale();
|
||||||
|
gtk_init(&argc, &argv);
|
||||||
|
gnome_program_init(PACKAGE, VERSION, LIBGNOMEUI_MODULE,
|
||||||
|
argc, argv, GNOME_PARAM_POPT_TABLE, poptions,
|
||||||
|
GNOME_PARAM_APP_DATADIR, PACKAGE_DATA_DIR, NULL);
|
||||||
|
|
||||||
|
if (show_version) {
|
||||||
|
printf(_("Current version of GnoeMoe is %s\n"), VERSION);
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
|
app->priv->client = gnome_master_client();
|
||||||
|
|
||||||
|
gtk_signal_connect(GTK_OBJECT(app->priv->client), "save_yourself",
|
||||||
|
GTK_SIGNAL_FUNC(on_gm_app_save_session), argv);
|
||||||
|
gtk_signal_connect(GTK_OBJECT(app->priv->client), "die",
|
||||||
|
GTK_SIGNAL_FUNC(on_gm_app_session_die), NULL);
|
||||||
|
|
||||||
|
/* Initialize everything */
|
||||||
|
gnome_vfs_init();
|
||||||
|
glade_init();
|
||||||
|
//mcp_init();
|
||||||
|
gm_pixbuf_init();
|
||||||
|
gm_app_initialize(app);
|
||||||
|
//editor_init();
|
||||||
|
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_app_add_world(GmApp *app, GmWorld *world) {
|
||||||
|
app->priv->worlds = g_list_append(app->priv->worlds, g_object_ref(world));
|
||||||
|
g_signal_emit(app, app_signals[WORLD_ADDED], 0, world);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_app_remove_world(GmApp *app, GmWorld *world) {
|
||||||
|
// Only remove when not loaded
|
||||||
|
const gchar *path = gm_world_path(world);
|
||||||
|
|
||||||
|
if (!gm_world_loaded(world)) {
|
||||||
|
app->priv->worlds = g_list_remove(app->priv->worlds, world);
|
||||||
|
g_signal_emit(app, app_signals[WORLD_REMOVED], 0, world);
|
||||||
|
|
||||||
|
g_object_unref(world);
|
||||||
|
gm_directory_remove_all(path, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GmWorld *
|
||||||
|
gm_app_world_by_name(GmApp *app, gchar *name) {
|
||||||
|
GList *elem;
|
||||||
|
const gchar *world_name;
|
||||||
|
|
||||||
|
for (elem = app->priv->worlds; elem; elem = elem->next) {
|
||||||
|
world_name = gm_world_name(GM_WORLD(elem->data));
|
||||||
|
|
||||||
|
if (!g_strcasecmp(name, world_name)) {
|
||||||
|
return GM_WORLD(elem->data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmOptions *
|
||||||
|
gm_app_options(GmApp *app) {
|
||||||
|
return app->priv->options;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
GmScripts *
|
||||||
|
gm_app_scripts(GmApp *app) {
|
||||||
|
return app->priv->scripts;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_app_worlds_path(GmApp *app) {
|
||||||
|
return app->priv->worlds_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_app_path(GmApp *app) {
|
||||||
|
return app->priv->path;
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *
|
||||||
|
gm_app_worlds(GmApp *app) {
|
||||||
|
return g_list_copy(app->priv->worlds);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmColorTable *
|
||||||
|
gm_app_color_table(GmApp *app) {
|
||||||
|
return app->priv->color_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmApp *
|
||||||
|
gm_app_instance() {
|
||||||
|
return application;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[]) {
|
||||||
|
g_type_init();
|
||||||
|
application = gm_app_new(argc, argv);
|
||||||
|
gm_app_run(application);
|
||||||
|
g_object_unref(application);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Callbacks */
|
||||||
|
void
|
||||||
|
on_gm_app_view_size_allocate(GmAppView *view, GtkAllocation *allocation,
|
||||||
|
GmApp *app) {
|
||||||
|
gm_options_set_int(app->priv->options, "width", allocation->width);
|
||||||
|
gm_options_set_int(app->priv->options, "height", allocation->height);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*gboolean
|
||||||
|
on_gm_app_tray_button_press(GtkWidget *widget, GdkEventButton *event,
|
||||||
|
gpointer user_data) {
|
||||||
|
if (event->type == GDK_2BUTTON_PRESS ||
|
||||||
|
event->type == GDK_3BUTTON_PRESS) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (event->button) {
|
||||||
|
case 1:
|
||||||
|
if_main_show_hide(!GTK_WIDGET_VISIBLE(wndMain));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
on_gm_app_tray_destroy(GtkWidget *widget, gpointer user_data) {
|
||||||
|
gtk_widget_destroy(GTK_WIDGET(app_tray_info.icon));
|
||||||
|
app_tray_info.icon = NULL;
|
||||||
|
app_tray_info.event_box = NULL;
|
||||||
|
app_tray_info.image = NULL;
|
||||||
|
app_tray_info.tooltips = NULL;
|
||||||
|
|
||||||
|
if (app_tray_info.flash_timeout != 0) {
|
||||||
|
g_source_remove(app_tray_info.flash_timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
tray_create(&app_tray_info);
|
||||||
|
|
||||||
|
if (!have_tray()) {
|
||||||
|
gtk_widget_show(if_main_get_widget("wndMain"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}*/
|
|
@ -0,0 +1,79 @@
|
||||||
|
#ifndef __GM_APP_H__
|
||||||
|
#define __GM_APP_H__
|
||||||
|
|
||||||
|
//#define G_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-main.glade"
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-options.h"
|
||||||
|
#include "gm-color-table.h"
|
||||||
|
#include "gm-scripts.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_APP (gm_app_get_type())
|
||||||
|
#define GM_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_APP, GmApp))
|
||||||
|
#define GM_APP_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_APP, GmApp const))
|
||||||
|
#define GM_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
|
||||||
|
GM_TYPE_APP, GmAppClass))
|
||||||
|
#define GM_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
|
||||||
|
GM_TYPE_APP))
|
||||||
|
#define GM_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||||
|
GM_TYPE_APP))
|
||||||
|
#define GM_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
|
||||||
|
GM_TYPE_APP, GmAppClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmAppPrivate GmAppPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmApp GmApp;
|
||||||
|
|
||||||
|
struct _GmApp {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmAppPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmAppClass GmAppClass;
|
||||||
|
|
||||||
|
struct _GmAppClass {
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
void (* world_added) (GmApp *app, GmWorld *world);
|
||||||
|
void (* world_removed) (GmApp *app, GmWorld *world);
|
||||||
|
};
|
||||||
|
|
||||||
|
GmApp *gm_app_instance();
|
||||||
|
GType gm_app_get_type(void) G_GNUC_CONST;
|
||||||
|
GmApp *gm_app_new(int argc, char *argv[]);
|
||||||
|
|
||||||
|
void gm_app_add_world(GmApp *app, GmWorld *world);
|
||||||
|
void gm_app_remove_world(GmApp *app, GmWorld *world);
|
||||||
|
|
||||||
|
const gchar *gm_app_worlds_path(GmApp *app);
|
||||||
|
const gchar *gm_app_path(GmApp *app);
|
||||||
|
GmOptions *gm_app_options(GmApp *app);
|
||||||
|
GList *gm_app_worlds(GmApp *app);
|
||||||
|
GmColorTable *gm_app_color_table(GmApp *app);
|
||||||
|
GmWorld *gm_app_world_by_name(GmApp *app, gchar *name);
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
GmScripts *gm_app_scripts(GmApp *app);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __GM_APP_H__ */
|
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef __GM_BOGUS_H__
|
||||||
|
#define __GM_BOGUS_H__
|
||||||
|
|
||||||
|
typedef GObject GmMcp;
|
||||||
|
GmMcp *gm_mcp_new(GmWorld *world) { return NULL; }
|
||||||
|
void gm_mcp_handle(GmMcp *mcp, gchar *line) {}
|
||||||
|
|
||||||
|
#endif /* __GM_BOGUS_H__ */
|
|
@ -0,0 +1,281 @@
|
||||||
|
#include <glib.h>
|
||||||
|
#include "gm-color-table.h"
|
||||||
|
#include "string.h"
|
||||||
|
#include "ansi.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
#define GM_COLOR_TABLE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_COLOR_TABLE, GmColorTablePrivate))
|
||||||
|
|
||||||
|
void gm_color_table_item_free(gpointer item);
|
||||||
|
|
||||||
|
typedef struct _GmColorTableItem GmColorTableItem;
|
||||||
|
|
||||||
|
struct _GmColorTableItem {
|
||||||
|
gchar *hex;
|
||||||
|
GdkColor color;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GmColorTablePrivate {
|
||||||
|
gboolean bold;
|
||||||
|
GHashTable *colors;
|
||||||
|
gchar *font_description;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
COLOR_CHANGED,
|
||||||
|
BOLD_TOGGLED,
|
||||||
|
FONT_CHANGED,
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint color_table_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmColorTable, gm_color_table, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_color_table_finalize(GObject *object) {
|
||||||
|
//GmColorTable *table = GM_COLOR_TABLE(object);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_color_table_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_color_table_class_init(GmColorTableClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_color_table_finalize;
|
||||||
|
|
||||||
|
color_table_signals[COLOR_CHANGED] =
|
||||||
|
g_signal_new("color_changed",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmColorTableClass, color_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__STRING,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_STRING);
|
||||||
|
|
||||||
|
color_table_signals[BOLD_TOGGLED] =
|
||||||
|
g_signal_new("bold_toggled",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmColorTableClass, bold_toggled),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__BOOLEAN,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_BOOLEAN);
|
||||||
|
|
||||||
|
color_table_signals[FONT_CHANGED] =
|
||||||
|
g_signal_new("font_changed",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmColorTableClass, font_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__STRING,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_STRING);
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmColorTablePrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_color_table_init(GmColorTable *table) {
|
||||||
|
table->priv = GM_COLOR_TABLE_GET_PRIVATE(table);
|
||||||
|
table->priv->colors = g_hash_table_new_full(g_str_hash, g_str_equal,
|
||||||
|
g_free, gm_color_table_item_free);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Private functions */
|
||||||
|
void
|
||||||
|
gm_color_table_item_free(gpointer item) {
|
||||||
|
GmColorTableItem *i = (GmColorTableItem *)(item);
|
||||||
|
|
||||||
|
g_free(i->hex);
|
||||||
|
g_free(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_color_table_initialize(GmColorTable *table) {
|
||||||
|
gm_color_table_set_bold(table, FALSE);
|
||||||
|
gm_color_table_set_font_description(table, "Monospace 10");
|
||||||
|
|
||||||
|
/*gm_color_table_set(table, "fg_default", "#D6B5D6B5D6B5");
|
||||||
|
gm_color_table_set(table, "fg_black", "#2D6B2D6B2D6B");
|
||||||
|
gm_color_table_set(table, "fg_red", "#FFFF00000000");
|
||||||
|
gm_color_table_set(table, "fg_green", "#0000FFFF0000");
|
||||||
|
gm_color_table_set(table, "fg_yellow", "#FFFFD0450000");
|
||||||
|
gm_color_table_set(table, "fg_blue", "#3EF73EF7BFFF");
|
||||||
|
gm_color_table_set(table, "fg_purple", "#A0A02020F0F0");
|
||||||
|
gm_color_table_set(table, "fg_cyan", "#0000FFFFFFFF");
|
||||||
|
gm_color_table_set(table, "fg_white", "#D8C5D8C5D8C5");
|
||||||
|
|
||||||
|
gm_color_table_set(table, "fg_default_h", "#FFFFFFFFFFFF");
|
||||||
|
gm_color_table_set(table, "fg_black_h", "#529452945294");
|
||||||
|
gm_color_table_set(table, "fg_red_h", "#FFFF785F785F");
|
||||||
|
gm_color_table_set(table, "fg_green_h", "#66ADFFFF66AD");
|
||||||
|
gm_color_table_set(table, "fg_yellow_h", "#FFFFFFFF58C6");
|
||||||
|
gm_color_table_set(table, "fg_blue_h", "#86318631FFFF");
|
||||||
|
gm_color_table_set(table, "fg_purple_h", "#C6576A18FFFF");
|
||||||
|
gm_color_table_set(table, "fg_cyan_h", "#86EEFFFFFFFF");
|
||||||
|
gm_color_table_set(table, "fg_white_h", "#FFFFFFFFFFFF");
|
||||||
|
|
||||||
|
gm_color_table_set(table, "bg_default", "#000000000000");
|
||||||
|
gm_color_table_set(table, "bg_black", "#2B5B2B5B2B5B");
|
||||||
|
gm_color_table_set(table, "bg_red", "#FFFF00000000");
|
||||||
|
gm_color_table_set(table, "bg_green", "#000080000000");
|
||||||
|
gm_color_table_set(table, "bg_yellow", "#C047C0470000");
|
||||||
|
gm_color_table_set(table, "bg_blue", "#00000000FFFF");
|
||||||
|
gm_color_table_set(table, "bg_purple", "#A0A02020F0F0");
|
||||||
|
gm_color_table_set(table, "bg_cyan", "#0000B74CB74C");
|
||||||
|
gm_color_table_set(table, "bg_white", "#FFFFFFFFFFFF");*/
|
||||||
|
|
||||||
|
gm_color_table_set(table, "fg_default", "#000000");
|
||||||
|
gm_color_table_set(table, "fg_black", "#000000");
|
||||||
|
gm_color_table_set(table, "fg_red", "#663822");
|
||||||
|
gm_color_table_set(table, "fg_green", "#445632");
|
||||||
|
gm_color_table_set(table, "fg_yellow", "#D1940C");
|
||||||
|
gm_color_table_set(table, "fg_blue", "#314E6C");
|
||||||
|
gm_color_table_set(table, "fg_purple", "#494066");
|
||||||
|
gm_color_table_set(table, "fg_cyan", "#0000FFFFFFFF");
|
||||||
|
gm_color_table_set(table, "fg_white", "#BAB5AB");
|
||||||
|
|
||||||
|
gm_color_table_set(table, "fg_default_h", "#565248");
|
||||||
|
gm_color_table_set(table, "fg_black_h", "#565248");
|
||||||
|
gm_color_table_set(table, "fg_red_h", "#990000");
|
||||||
|
gm_color_table_set(table, "fg_green_h", "#267726");
|
||||||
|
gm_color_table_set(table, "fg_yellow_h", "#EED680");
|
||||||
|
gm_color_table_set(table, "fg_blue_h", "#9DB8D2");
|
||||||
|
gm_color_table_set(table, "fg_purple_h", "#ADA7C8");
|
||||||
|
gm_color_table_set(table, "fg_cyan_h", "#86EEFFFFFFFF");
|
||||||
|
gm_color_table_set(table, "fg_white_h", "#807D74");
|
||||||
|
|
||||||
|
gm_color_table_set(table, "bg_default", "#EAE8E3");
|
||||||
|
gm_color_table_set(table, "bg_black", "#000000");
|
||||||
|
gm_color_table_set(table, "bg_red", "#663822");
|
||||||
|
gm_color_table_set(table, "bg_green", "#445632");
|
||||||
|
gm_color_table_set(table, "bg_yellow", "#D1940C");
|
||||||
|
gm_color_table_set(table, "bg_blue", "#314E6C");
|
||||||
|
gm_color_table_set(table, "bg_purple", "#494066");
|
||||||
|
gm_color_table_set(table, "bg_cyan", "#0000FFFFFFFF");
|
||||||
|
gm_color_table_set(table, "bg_white", "#FFFFFFFFFFFF");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Public functions */
|
||||||
|
|
||||||
|
GmColorTable *
|
||||||
|
gm_color_table_new(void) {
|
||||||
|
GmColorTable *table = GM_COLOR_TABLE(g_object_new(GM_TYPE_COLOR_TABLE, NULL));
|
||||||
|
|
||||||
|
gm_color_table_restore_defaults(table);
|
||||||
|
return table;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmColorTable *
|
||||||
|
gm_color_table_new_from_options(GmOptions *options) {
|
||||||
|
GmColorTable *table = GM_COLOR_TABLE(g_object_new(GM_TYPE_COLOR_TABLE, NULL));
|
||||||
|
|
||||||
|
gm_color_table_set_from_options(table, options);
|
||||||
|
return table;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_color_table_restore_defaults(GmColorTable *table) {
|
||||||
|
gm_color_table_initialize(table);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_color_table_set(GmColorTable *table, const gchar *name, const gchar *hex) {
|
||||||
|
GmColorTableItem *item;
|
||||||
|
|
||||||
|
item = g_hash_table_lookup(table->priv->colors, name);
|
||||||
|
|
||||||
|
if (!item) {
|
||||||
|
item = g_new0(GmColorTableItem, 1);
|
||||||
|
g_hash_table_insert(table->priv->colors, g_strdup(name), item);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item->hex == NULL || strcmp(hex, item->hex) != 0) {
|
||||||
|
g_free(item->hex);
|
||||||
|
item->hex = g_strdup(hex);
|
||||||
|
gdk_color_parse(item->hex, &(item->color));
|
||||||
|
|
||||||
|
g_signal_emit(table, color_table_signals[COLOR_CHANGED], 0, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_color_table_get(GmColorTable *table, const gchar *name, GdkColor *color) {
|
||||||
|
GmColorTableItem *item;
|
||||||
|
|
||||||
|
item = g_hash_table_lookup(table->priv->colors, name);
|
||||||
|
|
||||||
|
if (item != NULL) {
|
||||||
|
*color = item->color;
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_color_table_set_bold(GmColorTable *table, gboolean bold) {
|
||||||
|
if (table->priv->bold != bold) {
|
||||||
|
table->priv->bold = bold;
|
||||||
|
|
||||||
|
g_signal_emit(table, color_table_signals[BOLD_TOGGLED], 0, bold);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_color_table_bold(GmColorTable *table) {
|
||||||
|
return table->priv->bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_color_table_set_font_description(GmColorTable *table,
|
||||||
|
const gchar *font_description) {
|
||||||
|
const gchar *fd;
|
||||||
|
|
||||||
|
if (font_description == NULL) {
|
||||||
|
fd = "Monospace 10";
|
||||||
|
} else {
|
||||||
|
fd = font_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (table->priv->font_description == NULL ||
|
||||||
|
strcmp(table->priv->font_description, fd) != 0) {
|
||||||
|
g_free(table->priv->font_description);
|
||||||
|
table->priv->font_description = g_strdup(fd);
|
||||||
|
|
||||||
|
g_signal_emit(table, color_table_signals[FONT_CHANGED], 0,
|
||||||
|
table->priv->font_description);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_color_table_font_description(GmColorTable *table) {
|
||||||
|
return table->priv->font_description;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_color_table_set_from_options(GmColorTable *table, GmOptions *options) {
|
||||||
|
unsigned int i;
|
||||||
|
const gchar *value;
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(ansi_colors) / sizeof(ansinamepair); i++) {
|
||||||
|
value = gm_options_get(options, ansi_colors[i].name);
|
||||||
|
|
||||||
|
if (value != NULL) {
|
||||||
|
gm_color_table_set(table, ansi_colors[i].name, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_color_table_set_bold(table, gm_options_get_int(options, "bold-colors"));
|
||||||
|
gm_color_table_set_font_description(table, gm_options_get(options,
|
||||||
|
"font-family"));
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
#ifndef __GM_COLOR_TABLE_H__
|
||||||
|
#define __GM_COLOR_TABLE_H__
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "gm-options.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_COLOR_TABLE (gm_color_table_get_type())
|
||||||
|
#define GM_COLOR_TABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_COLOR_TABLE, GmColorTable))
|
||||||
|
#define GM_COLOR_TABLE_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_COLOR_TABLE, GmColorTable const))
|
||||||
|
#define GM_COLOR_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GM_TYPE_COLOR_TABLE, GmColorTableClass))
|
||||||
|
#define GM_IS_COLOR_TABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GM_TYPE_COLOR_TABLE))
|
||||||
|
#define GM_IS_COLOR_TABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_TYPE_COLOR_TABLE))
|
||||||
|
#define GM_COLOR_TABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GM_TYPE_COLOR_TABLE, GmColorTableClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmColorTablePrivate GmColorTablePrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmColorTable GmColorTable;
|
||||||
|
|
||||||
|
struct _GmColorTable {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmColorTablePrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmColorTableClass GmColorTableClass;
|
||||||
|
|
||||||
|
struct _GmColorTableClass {
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
void (* color_changed) (GmColorTable *table, const gchar *url);
|
||||||
|
void (* bold_toggled) (GmColorTable *table, gboolean bold);
|
||||||
|
void (* font_changed) (GmColorTable *table, const gchar *font_description);
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_color_table_get_type(void) G_GNUC_CONST;
|
||||||
|
GmColorTable *gm_color_table_new(void);
|
||||||
|
GmColorTable *gm_color_table_new_from_options(GmOptions *options);
|
||||||
|
void gm_color_table_restore_defaults(GmColorTable *table);
|
||||||
|
void gm_color_table_set(GmColorTable *table, const gchar *name,
|
||||||
|
const gchar *hex);
|
||||||
|
gboolean gm_color_table_get(GmColorTable *table, const gchar *name,
|
||||||
|
GdkColor *color);
|
||||||
|
void gm_color_table_set_bold(GmColorTable *table, gboolean bold);
|
||||||
|
gboolean gm_color_table_bold(GmColorTable *table);
|
||||||
|
void gm_color_table_set_font_description(GmColorTable *table,
|
||||||
|
const gchar *font_description);
|
||||||
|
const gchar *gm_color_table_font_description(GmColorTable *table);
|
||||||
|
|
||||||
|
void gm_color_table_set_from_options(GmColorTable *table, GmOptions *options);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
#endif /* __GM_COLOR_TABLE_H__ */
|
||||||
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "gm-editor.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
|
||||||
|
#define GM_EDITOR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_EDITOR, GmEditorPrivate))
|
||||||
|
|
||||||
|
struct _GmEditorPrivate {
|
||||||
|
gchar *name;
|
||||||
|
gchar *upload_cmd;
|
||||||
|
gchar *mcp_type;
|
||||||
|
|
||||||
|
GmEditType type;
|
||||||
|
gboolean is_code;
|
||||||
|
|
||||||
|
GList *lines;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SAVE,
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint editor_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmEditor, gm_editor, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_editor_finalize(GObject *object) {
|
||||||
|
GmEditor *editor = GM_EDITOR(object);
|
||||||
|
|
||||||
|
g_free(editor->priv->name);
|
||||||
|
g_free(editor->priv->upload_cmd);
|
||||||
|
g_free(editor->priv->mcp_type);
|
||||||
|
g_list_free_simple(editor->priv->lines);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_editor_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_editor_class_init(GmEditorClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_editor_finalize;
|
||||||
|
|
||||||
|
editor_signals[SAVE] =
|
||||||
|
g_signal_new("save",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmEditorClass, save),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__VOID,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
0);
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmEditorPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_editor_init(GmEditor *view) {
|
||||||
|
view->priv = GM_EDITOR_GET_PRIVATE(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmEditor *
|
||||||
|
gm_editor_new(gchar *name, gchar *uploadcmd, GList *text) {
|
||||||
|
GmEditor *editor = GM_EDITOR(g_object_new(GM_TYPE_EDITOR, NULL));
|
||||||
|
|
||||||
|
editor->priv->name = g_strdup(name);
|
||||||
|
editor->priv->upload_cmd = g_strdup(uploadcmd);
|
||||||
|
editor->priv->mcp_type = NULL;
|
||||||
|
editor->priv->lines = g_list_copy(text);
|
||||||
|
editor->priv->type = E_LEGACY;
|
||||||
|
editor->priv->is_code = (strncmp(uploadcmd, "@program", 7) == 0);
|
||||||
|
return editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmEditor *
|
||||||
|
gm_editor_new_mcp(gchar *name, gchar *reference, gchar *type,
|
||||||
|
GList *text) {
|
||||||
|
GmEditor *editor = GM_EDITOR(g_object_new(GM_TYPE_EDITOR, NULL));
|
||||||
|
|
||||||
|
editor->priv->name = g_strdup(name);
|
||||||
|
editor->priv->upload_cmd = g_strdup(reference);
|
||||||
|
editor->priv->mcp_type = g_strdup(type);
|
||||||
|
editor->priv->lines = g_list_copy(text);
|
||||||
|
editor->priv->type = E_LEGACY;
|
||||||
|
editor->priv->is_code = (strcmp(type, "moo-code") == 0);
|
||||||
|
|
||||||
|
return editor;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_editor_is_code(GmEditor *editor) {
|
||||||
|
return editor->priv->is_code;
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_editor_name(GmEditor *editor) {
|
||||||
|
return editor->priv->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_editor_upload_cmd(GmEditor *editor) {
|
||||||
|
return editor->priv->upload_cmd;
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_editor_mcp_type(GmEditor *editor) {
|
||||||
|
return editor->priv->mcp_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *
|
||||||
|
gm_editor_lines(GmEditor *editor) {
|
||||||
|
return editor->priv->lines;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmEditType
|
||||||
|
gm_editor_type(GmEditor *editor) {
|
||||||
|
return editor->priv->type;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_editor_save(GmEditor *editor) {
|
||||||
|
g_signal_emit(editor, editor_signals[SAVE], 0);
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
#ifndef __GM_EDITOR_H__
|
||||||
|
#define __GM_EDITOR_H__
|
||||||
|
|
||||||
|
#include <glib-object.h>
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_EDITOR (gm_editor_get_type())
|
||||||
|
#define GM_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_EDITOR, GmEditor))
|
||||||
|
#define GM_EDITOR_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_EDITOR, GmEditor const))
|
||||||
|
#define GM_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GM_TYPE_EDITOR, GmEditorClass))
|
||||||
|
#define GM_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GM_TYPE_EDITOR))
|
||||||
|
#define GM_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_TYPE_EDITOR))
|
||||||
|
#define GM_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GM_TYPE_EDITOR, GmEditorClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmEditorPrivate GmEditorPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmEditor GmEditor;
|
||||||
|
|
||||||
|
struct _GmEditor {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmEditorPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmEditorClass GmEditorClass;
|
||||||
|
|
||||||
|
struct _GmEditorClass {
|
||||||
|
GObject parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
void (* save) (GmEditor *editor);
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _GmEditType GmEditType;
|
||||||
|
enum _GmEditType {
|
||||||
|
E_LEGACY,
|
||||||
|
E_MCP
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_editor_get_type(void) G_GNUC_CONST;
|
||||||
|
GmEditor *gm_editor_new(gchar *name, gchar *uploadcmd, GList *text);
|
||||||
|
GmEditor *gm_editor_new_mcp(gchar *name, gchar *reference, gchar *type,
|
||||||
|
GList *text);
|
||||||
|
|
||||||
|
void gm_editor_save(GmEditor *editor);
|
||||||
|
|
||||||
|
gboolean gm_editor_is_code(GmEditor *editor);
|
||||||
|
gchar *gm_editor_name(GmEditor *editor);
|
||||||
|
gchar *gm_editor_upload_cmd(GmEditor *editor);
|
||||||
|
gchar *gm_editor_mcp_type(GmEditor *editor);
|
||||||
|
GList *gm_editor_lines(GmEditor *editor);
|
||||||
|
GmEditType gm_editor_type(GmEditor *editor);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
#endif /* __GM_EDITOR_H__ */
|
|
@ -0,0 +1,4 @@
|
||||||
|
VOID:STRING,UINT
|
||||||
|
VOID:STRING,INT
|
||||||
|
VOID:INT,INT
|
||||||
|
VOID:INT,STRING
|
|
@ -0,0 +1,537 @@
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
#include "gm-net.h"
|
||||||
|
#include "gm-marshal.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
|
||||||
|
#define GM_NET_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_NET, GmNetPrivate))
|
||||||
|
|
||||||
|
struct _GmNetPrivate {
|
||||||
|
int socket; /**< the connection socket, is -1 if not connected */
|
||||||
|
GIOChannel *channel; /**< the channel which is used to 'listen' on the socket via the glib main loop */
|
||||||
|
guint source; /**< the id of the socket watch */
|
||||||
|
guint connect_timeout_id; /**< the connect timeout id */
|
||||||
|
guint connect_check_id; /**< the connect timeout id */
|
||||||
|
struct timeval last_connected; /**< contains when the last connect happened */
|
||||||
|
int tn_last; /**< used for telnet */
|
||||||
|
int tn_subneg; /**< used for telnet */
|
||||||
|
|
||||||
|
struct addrinfo *addr;
|
||||||
|
struct addrinfo *current;
|
||||||
|
|
||||||
|
GmNetState state; /**< state of the connection */
|
||||||
|
gchar *current_host;
|
||||||
|
gchar *current_port;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
STATE_CHANGING,
|
||||||
|
NET_ERROR,
|
||||||
|
BYTES_RECV,
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint net_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmNet, gm_net, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
/* These values taken from RFC 854 and RFC 857. */
|
||||||
|
#define TN_WILL 251
|
||||||
|
#define TN_WONT 252
|
||||||
|
#define TN_DO 253
|
||||||
|
#define TN_DONT 254
|
||||||
|
#define TN_IAC 255 /* Interpret As Command */
|
||||||
|
#define TN_SB 250 /* start of subnegotiation */
|
||||||
|
#define TN_SE 240 /* end of subnegotiaton */
|
||||||
|
|
||||||
|
void gm_net_connect_next(GmNet *net);
|
||||||
|
|
||||||
|
gboolean on_gm_net_input_recv(GIOChannel * source, GIOCondition condition,
|
||||||
|
GmNet *net);
|
||||||
|
gboolean on_gm_net_connect_check(GIOChannel * source, GIOCondition condition,
|
||||||
|
GmNet *net);
|
||||||
|
gboolean on_gm_net_connect_timeout(GmNet *net);
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_net_finalize(GObject *object) {
|
||||||
|
//GmNet *net = GM_NET(object);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_net_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_net_class_init(GmNetClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_net_finalize;
|
||||||
|
|
||||||
|
net_signals[STATE_CHANGING] =
|
||||||
|
g_signal_new("state_changing",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmNetClass, state_changing),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__UINT,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_UINT);
|
||||||
|
|
||||||
|
net_signals[NET_ERROR] =
|
||||||
|
g_signal_new("net_error",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmNetClass, net_error),
|
||||||
|
NULL, NULL,
|
||||||
|
gm_marshal_VOID__STRING_INT,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
2,
|
||||||
|
G_TYPE_STRING,
|
||||||
|
G_TYPE_INT);
|
||||||
|
|
||||||
|
net_signals[BYTES_RECV] =
|
||||||
|
g_signal_new("bytes_recv",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmNetClass, bytes_recv),
|
||||||
|
NULL, NULL,
|
||||||
|
gm_marshal_VOID__STRING_UINT,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
2,
|
||||||
|
G_TYPE_STRING,
|
||||||
|
G_TYPE_UINT);
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmNetPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_net_init(GmNet *net) {
|
||||||
|
net->priv = GM_NET_GET_PRIVATE(net);
|
||||||
|
net->priv->state = GM_NET_STATE_DISCONNECTED;
|
||||||
|
net->priv->addr = NULL;
|
||||||
|
net->priv->current = NULL;
|
||||||
|
net->priv->channel = NULL;
|
||||||
|
|
||||||
|
net->priv->source = 0;
|
||||||
|
net->priv->connect_timeout_id = 0;
|
||||||
|
net->priv->connect_check_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_set_state(GmNet *net, GmNetState state) {
|
||||||
|
g_signal_emit(net, net_signals[STATE_CHANGING], 0, state);
|
||||||
|
net->priv->state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_clean_disconnection(GmNet *net) {
|
||||||
|
GError *err = NULL;
|
||||||
|
|
||||||
|
if (!net->priv->channel) {
|
||||||
|
debug_msg(1, "GmNet.CleanDisconnection: NOT clean for %d",
|
||||||
|
net->priv->socket);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug_msg(1, "GmNet.CleanDisconnection: clean disconnect for %d",
|
||||||
|
net->priv->socket);
|
||||||
|
|
||||||
|
// Shutdown the channel
|
||||||
|
g_io_channel_shutdown(net->priv->channel, TRUE, &err);
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
debug_msg(1, "GmNet.CleanDisconnection: error on channel shutdown: "
|
||||||
|
"%s", err->message);
|
||||||
|
g_error_free(err);
|
||||||
|
err = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_io_channel_unref(net->priv->channel);
|
||||||
|
|
||||||
|
net->priv->channel = NULL;
|
||||||
|
net->priv->socket = -1;
|
||||||
|
|
||||||
|
net->priv->tn_last = 0;
|
||||||
|
net->priv->tn_subneg = 0;
|
||||||
|
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_DISCONNECTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_dirty_disconnection(GmNet *net, int err) {
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
// Pff, stupid, we print a message and pass it on to clean_disconnection
|
||||||
|
debug_msg(1, "GmNet.DirtyDisconnection: dirty disconnect %d",
|
||||||
|
net->priv->socket);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("Connection lost... (%s)"), strerror(err));
|
||||||
|
g_signal_emit(net, net_signals[NET_ERROR], 0, msg,
|
||||||
|
GM_NET_ERROR_DISCONNECTED);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
gm_net_clean_disconnection(net);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_connect_succeed(GmNet *net) {
|
||||||
|
freeaddrinfo(net->priv->addr);
|
||||||
|
net->priv->addr = NULL;
|
||||||
|
net->priv->current = NULL;
|
||||||
|
|
||||||
|
net->priv->source = g_io_add_watch(net->priv->channel,
|
||||||
|
G_IO_IN | G_IO_HUP, (GIOFunc)on_gm_net_input_recv, net);
|
||||||
|
|
||||||
|
if (net->priv->connect_timeout_id != 0) {
|
||||||
|
g_source_remove(net->priv->connect_timeout_id);
|
||||||
|
net->priv->connect_timeout_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (net->priv->connect_check_id != 0) {
|
||||||
|
g_source_remove(net->priv->connect_check_id);
|
||||||
|
net->priv->connect_check_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
gettimeofday(&(net->priv->last_connected), NULL);
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_CONNECTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_connect_failed(GmNet *net, gchar *err, gint code) {
|
||||||
|
if (net->priv->channel) {
|
||||||
|
g_io_channel_shutdown(net->priv->channel, TRUE, NULL);
|
||||||
|
g_io_channel_unref(net->priv->channel);
|
||||||
|
net->priv->channel = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_signal_emit(net, net_signals[NET_ERROR], 0, err, GM_NET_ERROR_CONNECTING);
|
||||||
|
|
||||||
|
if (net->priv->addr && net->priv->current->ai_next) {
|
||||||
|
net->priv->current = net->priv->current->ai_next;
|
||||||
|
gm_net_connect_next(net);
|
||||||
|
} else {
|
||||||
|
net->priv->socket = -1;
|
||||||
|
|
||||||
|
if (net->priv->addr) {
|
||||||
|
freeaddrinfo(net->priv->addr);
|
||||||
|
net->priv->addr = NULL;
|
||||||
|
net->priv->current = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Don't use set_state here because we weren't really connected before
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_DISCONNECTED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_connect_next(GmNet *net) {
|
||||||
|
char host[NI_MAXHOST], port[NI_MAXSERV];
|
||||||
|
int ret, result;
|
||||||
|
struct addrinfo *tmp = net->priv->current;
|
||||||
|
|
||||||
|
if (tmp == NULL) {
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
if ((ret = getnameinfo(tmp->ai_addr, tmp->ai_addrlen, host, NI_MAXHOST,
|
||||||
|
port, NI_MAXSERV, NI_NUMERICHOST | NI_NUMERICSERV)) != 0) {
|
||||||
|
debug_msg(1, "GmNet.ConnectNext: getnameinfo error: %s",
|
||||||
|
gai_strerror(ret));
|
||||||
|
gm_net_connect_failed(net, (gchar *)gai_strerror(ret), ret);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
net->priv->current_host = host;
|
||||||
|
net->priv->current_port = port;
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_TRY_ADDRESS);
|
||||||
|
|
||||||
|
net->priv->socket = socket(tmp->ai_family, tmp->ai_socktype,
|
||||||
|
tmp->ai_protocol);
|
||||||
|
|
||||||
|
if (net->priv->socket < 0) {
|
||||||
|
gm_net_connect_failed(net, strerror(errno), errno);
|
||||||
|
} else {
|
||||||
|
fcntl(net->priv->socket, F_SETFL,
|
||||||
|
fcntl(net->priv->socket, F_GETFL) | O_NONBLOCK);
|
||||||
|
|
||||||
|
if ((result = connect(net->priv->socket, tmp->ai_addr,
|
||||||
|
net->priv->addr->ai_addrlen)) == -1 && errno != EINPROGRESS) {
|
||||||
|
gm_net_connect_failed(net, strerror(errno), errno);
|
||||||
|
} else {
|
||||||
|
net->priv->channel = g_io_channel_unix_new(net->priv->socket);
|
||||||
|
g_io_channel_set_close_on_unref(net->priv->channel, TRUE);
|
||||||
|
|
||||||
|
if (result == 0) {
|
||||||
|
gm_net_connect_succeed(net);
|
||||||
|
} else {
|
||||||
|
net->priv->connect_check_id = g_io_add_watch(net->priv->channel,
|
||||||
|
G_IO_OUT|G_IO_ERR, (GIOFunc)on_gm_net_connect_check, net);
|
||||||
|
net->priv->connect_timeout_id = g_timeout_add(5000,
|
||||||
|
(GSourceFunc)on_gm_net_connect_timeout, net);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_handle_telnet(GmNet *net, unsigned char *buf, int *len) {
|
||||||
|
int i, j;
|
||||||
|
unsigned char c;
|
||||||
|
|
||||||
|
j = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < *len; ++i) {
|
||||||
|
c = buf[i];
|
||||||
|
|
||||||
|
if (net->priv->tn_last) {
|
||||||
|
switch (net->priv->tn_last) {
|
||||||
|
case TN_WILL: case TN_WONT: case TN_DO: case TN_DONT:
|
||||||
|
net->priv->tn_last = 0;
|
||||||
|
break;
|
||||||
|
case TN_IAC:
|
||||||
|
switch (c) {
|
||||||
|
case TN_WILL: case TN_WONT: case TN_DO: case TN_DONT:
|
||||||
|
net->priv->tn_last = c;
|
||||||
|
break;
|
||||||
|
case TN_SB:
|
||||||
|
net->priv->tn_subneg = 1;
|
||||||
|
net->priv->tn_last = 0;
|
||||||
|
break;
|
||||||
|
case TN_SE:
|
||||||
|
net->priv->tn_subneg = 0;
|
||||||
|
net->priv->tn_last = 0;
|
||||||
|
break;
|
||||||
|
case TN_IAC:
|
||||||
|
if (!net->priv->tn_subneg) {
|
||||||
|
buf[j] = c;
|
||||||
|
++j;
|
||||||
|
}
|
||||||
|
net->priv->tn_last = 0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
net->priv->tn_last = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (c == TN_IAC) {
|
||||||
|
net->priv->tn_last = TN_IAC;
|
||||||
|
} else if (net->priv->tn_subneg) {
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
buf[j] = c;
|
||||||
|
++j;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*len = j; //Since j-- is the last written char
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Public */
|
||||||
|
GmNet *
|
||||||
|
gm_net_new() {
|
||||||
|
GmNet *net = GM_NET(g_object_new(GM_TYPE_NET, NULL));
|
||||||
|
|
||||||
|
return net;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmNetState
|
||||||
|
gm_net_state(GmNet *net) {
|
||||||
|
return net->priv->state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_connect(GmNet *net, const gchar *host, const gchar *port) {
|
||||||
|
struct addrinfo hint;
|
||||||
|
int ret;
|
||||||
|
char shost[NI_MAXHOST], sport[NI_MAXSERV];
|
||||||
|
|
||||||
|
if (net->priv->state != GM_NET_STATE_DISCONNECTED) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(shost, NI_MAXHOST - 1, "%s", host);
|
||||||
|
snprintf(sport, NI_MAXSERV - 1, "%s", port);
|
||||||
|
|
||||||
|
net->priv->current_host = shost;
|
||||||
|
net->priv->current_port = sport;
|
||||||
|
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_CONNECTING);
|
||||||
|
|
||||||
|
memset(&hint, 0, sizeof(hint));
|
||||||
|
hint.ai_flags = 0;
|
||||||
|
hint.ai_family = AF_UNSPEC;
|
||||||
|
hint.ai_socktype = SOCK_STREAM;
|
||||||
|
hint.ai_protocol = IPPROTO_TCP;
|
||||||
|
|
||||||
|
debug_msg(1, "GmNet.Connect: getaddrinfo: %s : %s", shost, sport);
|
||||||
|
|
||||||
|
if ((ret = getaddrinfo(shost, sport, &hint, &(net->priv->addr))) != 0) {
|
||||||
|
net->priv->addr = NULL;
|
||||||
|
debug_msg(1, "GmNet.Connect: getaddrinfo failed: %s", gai_strerror(ret));
|
||||||
|
gm_net_connect_failed(net, (gchar *)gai_strerror(ret), ret);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (net->priv->addr != NULL) {
|
||||||
|
net->priv->current = net->priv->addr;
|
||||||
|
gm_net_connect_next(net);
|
||||||
|
} else {
|
||||||
|
gm_net_connect_failed(net, _("No addresses available"), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_disconnect(GmNet *net) {
|
||||||
|
if (net->priv->state == GM_NET_STATE_CONNECTED) {
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_DISCONNECTING);
|
||||||
|
|
||||||
|
// Remove the watch
|
||||||
|
g_source_remove(net->priv->source);
|
||||||
|
gm_net_clean_disconnection(net);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_send_line(GmNet *net, gchar *line) {
|
||||||
|
gchar *send_line;
|
||||||
|
|
||||||
|
send_line = (gchar *)(g_strconcat(line, "\r\n", NULL));
|
||||||
|
gm_net_send(net, send_line);
|
||||||
|
g_free(send_line);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_net_send(GmNet *net, gchar *text) {
|
||||||
|
int result;
|
||||||
|
fd_set connect_set;
|
||||||
|
|
||||||
|
if (net->priv->state == GM_NET_STATE_CONNECTED) {
|
||||||
|
debug_msg(1, "GmNet.Send: %s", text);
|
||||||
|
|
||||||
|
if ((result = send(net->priv->socket, text, strlen(text), 0)) == -1
|
||||||
|
&& (errno == EAGAIN || errno == EWOULDBLOCK)) {
|
||||||
|
FD_ZERO(&connect_set);
|
||||||
|
FD_SET(net->priv->socket, &connect_set);
|
||||||
|
|
||||||
|
// Wait for sending to be done
|
||||||
|
select(net->priv->socket + 1, NULL, &connect_set, NULL, NULL);
|
||||||
|
} else if (result == -1) {
|
||||||
|
debug_msg(1, "GmNet.Send: error on sending line: %s", strerror(errno));
|
||||||
|
gm_net_dirty_disconnection(net, errno);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
g_signal_emit(net, net_signals[NET_ERROR], 0, _("Not connected"),
|
||||||
|
GM_NET_ERROR);
|
||||||
|
debug_msg(1, "GmNet.Send: not connected!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_net_current_host(GmNet *net) {
|
||||||
|
return net->priv->current_host;
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_net_current_port(GmNet *net) {
|
||||||
|
return net->priv->current_port;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Callbacks */
|
||||||
|
|
||||||
|
#define MAX_RECV_BUF 1024
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
on_gm_net_input_recv(GIOChannel * source, GIOCondition condition, GmNet *net) {
|
||||||
|
unsigned char lbuf[MAX_RECV_BUF];
|
||||||
|
int len;
|
||||||
|
|
||||||
|
if (condition == G_IO_HUP) {
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_DISCONNECTING);
|
||||||
|
gm_net_clean_disconnection(net);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (net->priv->state != GM_NET_STATE_CONNECTED) {
|
||||||
|
debug_msg(1, "GmNet.OnInputRecv: not connected!");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Break the received line by newline (skip \r)
|
||||||
|
len = recv(net->priv->socket, lbuf, MAX_RECV_BUF - 2, 0);
|
||||||
|
|
||||||
|
debug_msg(1, "GmNet.OnInputRecv: received %d bytes", len);
|
||||||
|
|
||||||
|
if (len < 1) {
|
||||||
|
// Disconnected, either clean or dirty
|
||||||
|
// (shouldn't this be caught by G_IO_HUP?)
|
||||||
|
if (len < 0) {
|
||||||
|
if (errno == EAGAIN || errno == EWOULDBLOCK) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_DISCONNECTING);
|
||||||
|
gm_net_dirty_disconnection(net, errno);
|
||||||
|
} else {
|
||||||
|
gm_net_set_state(net, GM_NET_STATE_DISCONNECTING);
|
||||||
|
gm_net_clean_disconnection(net);
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
} else {
|
||||||
|
// It's fine, we have text!
|
||||||
|
gm_net_handle_telnet(net, lbuf, &len);
|
||||||
|
g_signal_emit(net, net_signals[BYTES_RECV], 0, lbuf, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
on_gm_net_connect_check(GIOChannel * source, GIOCondition condition,
|
||||||
|
GmNet *net) {
|
||||||
|
int option = 0;
|
||||||
|
socklen_t optionsize = sizeof(option);
|
||||||
|
|
||||||
|
if (net->priv->connect_timeout_id != 0) {
|
||||||
|
g_source_remove(net->priv->connect_timeout_id);
|
||||||
|
net->priv->connect_timeout_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (condition == G_IO_ERR) {
|
||||||
|
getsockopt(net->priv->socket, SOL_SOCKET, SO_ERROR, &option, &optionsize);
|
||||||
|
gm_net_connect_failed(net, strerror(option), option);
|
||||||
|
} else {
|
||||||
|
gm_net_connect_succeed(net);
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
on_gm_net_connect_timeout(GmNet *net) {
|
||||||
|
net->priv->connect_timeout_id = 0;
|
||||||
|
|
||||||
|
if (net->priv->connect_check_id != 0) {
|
||||||
|
g_source_remove(net->priv->connect_check_id);
|
||||||
|
net->priv->connect_check_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_net_connect_failed(net, _("Connect timeout (5)"), 0);
|
||||||
|
return FALSE;
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
#ifndef __GM_NET_H__
|
||||||
|
#define __GM_NET_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_NET (gm_net_get_type())
|
||||||
|
#define GM_NET(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_NET, GmNet))
|
||||||
|
#define GM_NET_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_NET, GmNet const))
|
||||||
|
#define GM_NET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
|
||||||
|
GM_TYPE_NET, GmNetClass))
|
||||||
|
#define GM_IS_NET(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
|
||||||
|
GM_TYPE_NET))
|
||||||
|
#define GM_IS_NET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||||
|
GM_TYPE_NET))
|
||||||
|
#define GM_NET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
|
||||||
|
GM_TYPE_NET, GmNetClass))
|
||||||
|
|
||||||
|
typedef enum _GmNetState {
|
||||||
|
GM_NET_STATE_CONNECTED, /**< socket connected */
|
||||||
|
GM_NET_STATE_DISCONNECTED, /**< socket disconnected */
|
||||||
|
GM_NET_STATE_CONNECTING, /**< socket still connecting */
|
||||||
|
GM_NET_STATE_TRY_ADDRESS, /**< connecting to address */
|
||||||
|
GM_NET_STATE_DISCONNECTING /**< socket still disconnecting */
|
||||||
|
} GmNetState;
|
||||||
|
|
||||||
|
typedef enum _GmNetError {
|
||||||
|
GM_NET_ERROR_CONNECTING, /**< error while connecting */
|
||||||
|
GM_NET_ERROR_DISCONNECTED, /**< error while connecting */
|
||||||
|
GM_NET_ERROR /**< general error */
|
||||||
|
} GmNetError;
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmNetPrivate GmNetPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmNet GmNet;
|
||||||
|
|
||||||
|
struct _GmNet {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmNetPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmNetClass GmNetClass;
|
||||||
|
|
||||||
|
struct _GmNetClass {
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
void (* state_changing) (GmNet *net, guint state);
|
||||||
|
void (* net_error) (GmNet *net, gchar *error, gint code);
|
||||||
|
void (* bytes_recv) (GmNet *net, gchar *text);
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_net_get_type(void) G_GNUC_CONST;
|
||||||
|
GmNet *gm_net_new(void);
|
||||||
|
|
||||||
|
GmNetState gm_net_state(GmNet *net);
|
||||||
|
void gm_net_connect(GmNet *net, const gchar *host, const gchar *port);
|
||||||
|
void gm_net_disconnect(GmNet *net);
|
||||||
|
void gm_net_send_line(GmNet *net, gchar *line);
|
||||||
|
void gm_net_send(GmNet *net, gchar *text);
|
||||||
|
const gchar *gm_net_current_host(GmNet *net);
|
||||||
|
const gchar *gm_net_current_port(GmNet *net);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
#endif /* __GM_NET_H__ */
|
|
@ -0,0 +1,207 @@
|
||||||
|
#include <glib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
#include "gm-options.h"
|
||||||
|
#include "gm-string.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
extern int errno;
|
||||||
|
|
||||||
|
#define GM_OPTIONS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_OPTIONS, GmOptionsPrivate))
|
||||||
|
|
||||||
|
struct _GmOptionsPrivate {
|
||||||
|
GHashTable *options;
|
||||||
|
gchar *filepath;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
OPTION_CHANGED,
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint options_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmOptions, gm_options, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_options_finalize(GObject *object) {
|
||||||
|
GmOptions *options = GM_OPTIONS(object);
|
||||||
|
|
||||||
|
g_hash_table_destroy(options->priv->options);
|
||||||
|
g_free(options->priv->filepath);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_options_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_options_class_init(GmOptionsClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_options_finalize;
|
||||||
|
|
||||||
|
options_signals[OPTION_CHANGED] =
|
||||||
|
g_signal_new("option_changed",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmOptionsClass, option_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__STRING,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_STRING);
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmOptionsPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_options_init(GmOptions *options) {
|
||||||
|
options->priv = GM_OPTIONS_GET_PRIVATE(options);
|
||||||
|
options->priv->options = g_hash_table_new_full(g_str_hash, g_str_equal,
|
||||||
|
g_free, g_free);
|
||||||
|
options->priv->filepath = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmOptions *
|
||||||
|
gm_options_new(void) {
|
||||||
|
GmOptions *options = GM_OPTIONS(g_object_new(GM_TYPE_OPTIONS, NULL));
|
||||||
|
|
||||||
|
return options;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_options_dup_option(gchar *key, gchar *value, GmOptions *copy) {
|
||||||
|
gm_options_set(copy, key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmOptions *
|
||||||
|
gm_options_dup(GmOptions *source) {
|
||||||
|
GmOptions *copy = gm_options_new();
|
||||||
|
|
||||||
|
g_hash_table_foreach(source->priv->options, (GHFunc)gm_options_dup_option,
|
||||||
|
copy);
|
||||||
|
|
||||||
|
return copy;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adds an option to opt, even if key already exists
|
||||||
|
void
|
||||||
|
gm_options_set(GmOptions * options, const gchar *key, const gchar *value) {
|
||||||
|
gchar *trimmed = gm_string_trim(key);
|
||||||
|
gboolean changed = g_hash_table_lookup(options->priv->options, trimmed)
|
||||||
|
!= NULL;
|
||||||
|
|
||||||
|
g_hash_table_insert(options->priv->options, trimmed, g_strdup(value));
|
||||||
|
|
||||||
|
if (changed) {
|
||||||
|
g_signal_emit(options, options_signals[OPTION_CHANGED], 0, key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_options_get(GmOptions *options, const gchar *key) {
|
||||||
|
return g_hash_table_lookup(options->priv->options, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_options_set_int(GmOptions *options, const gchar *key, int value) {
|
||||||
|
gchar val[15];
|
||||||
|
|
||||||
|
g_snprintf((gchar *) &val, 15, "%d", value);
|
||||||
|
gm_options_set(options, key, (const gchar *) &val);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
gm_options_get_int(GmOptions *options, const gchar *key) {
|
||||||
|
const gchar *val = gm_options_get(options, key);
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (val && gm_string_to_int(val, &ret)) {
|
||||||
|
return ret;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_options_save_value(gchar *key, gchar *value, FILE *f) {
|
||||||
|
debug_msg(1, "GmOptions.SaveValue: saving %s, %s", key, value);
|
||||||
|
fprintf(f, "%s=%s\n", key, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_options_save(GmOptions *options) {
|
||||||
|
FILE *f;
|
||||||
|
|
||||||
|
if (options->priv->filepath == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
f = fopen(options->priv->filepath, "w");
|
||||||
|
|
||||||
|
debug_msg(1, "GmOptions.save: saving options (%s)!", options->priv->filepath);
|
||||||
|
|
||||||
|
if (f) {
|
||||||
|
g_hash_table_foreach(options->priv->options,
|
||||||
|
(GHFunc)gm_options_save_value, f);
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
chmod(options->priv->filepath, 0660);
|
||||||
|
} else {
|
||||||
|
debug_msg(1, "GmOptions.save: couldn't open option file for saving: %s",
|
||||||
|
strerror(errno));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_options_save_as(GmOptions *options, const gchar *filename) {
|
||||||
|
g_free(options->priv->filepath);
|
||||||
|
options->priv->filepath = g_strdup(filename);
|
||||||
|
|
||||||
|
gm_options_save(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_options_load(GmOptions *options, const char *filename) {
|
||||||
|
FILE *f;
|
||||||
|
gchar **keyvalue, line[1024];
|
||||||
|
int i;
|
||||||
|
|
||||||
|
debug_msg(1, "GmOptions.load: loading options (%s)!", filename);
|
||||||
|
|
||||||
|
if ((f = fopen(filename, "r")) != NULL) {
|
||||||
|
i = 0;
|
||||||
|
while (fgets((char *) &line, 1024 - 1, f) != NULL) {
|
||||||
|
line[strlen((char *) &line) - 1] = '\0';
|
||||||
|
i++;
|
||||||
|
|
||||||
|
if (strlen(line) != 0) { // Empty lines, we don't need to process those
|
||||||
|
keyvalue = g_strsplit(line, "=", 2);
|
||||||
|
// This will return at least 1 element, at most 2, we need 2
|
||||||
|
if (strncmp(keyvalue[0], "#", 1) != 0) { // Commented lines, well ignore them too
|
||||||
|
if (keyvalue[1] != NULL) {
|
||||||
|
debug_msg(1, "GmOptions.load: adding %s, %s", keyvalue[0], keyvalue[1]);
|
||||||
|
gm_options_set(options, keyvalue[0], keyvalue[1]);
|
||||||
|
} else {
|
||||||
|
debug_msg(1, "GmOptions.load: wrong syntax of options "
|
||||||
|
"line in %s line %d", filename, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_strfreev(keyvalue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
} else {
|
||||||
|
debug_msg(1, "GmOptions.load: could not retrieve contents of file "
|
||||||
|
"%s (%s)", filename, strerror(errno));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(options->priv->filepath);
|
||||||
|
options->priv->filepath = g_strdup(filename);
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
#ifndef __GM_OPTIONS_H__
|
||||||
|
#define __GM_OPTIONS_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_OPTIONS (gm_options_get_type())
|
||||||
|
#define GM_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_OPTIONS, GmOptions))
|
||||||
|
#define GM_OPTIONS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_OPTIONS, GmOptions const))
|
||||||
|
#define GM_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
|
||||||
|
GM_TYPE_OPTIONS, GmOptionsClass))
|
||||||
|
#define GM_IS_OPTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
|
||||||
|
GM_TYPE_OPTIONS))
|
||||||
|
#define GM_IS_OPTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||||
|
GM_TYPE_OPTIONS))
|
||||||
|
#define GM_OPTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
|
||||||
|
GM_TYPE_OPTIONS, GmOptionsClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmOptionsPrivate GmOptionsPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmOptions GmOptions;
|
||||||
|
|
||||||
|
struct _GmOptions {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmOptionsPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmOptionsClass GmOptionsClass;
|
||||||
|
|
||||||
|
struct _GmOptionsClass {
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
void (* option_changed) (GmOptions *options, const gchar *key);
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_options_get_type(void) G_GNUC_CONST;
|
||||||
|
GmOptions *gm_options_new(void);
|
||||||
|
|
||||||
|
GmOptions *gm_options_dup(GmOptions *source);
|
||||||
|
void gm_options_add(GmOptions *options, const gchar *key, const gchar *value);
|
||||||
|
void gm_options_set(GmOptions *options, const gchar *key, const gchar *value);
|
||||||
|
const gchar *gm_options_get(GmOptions *options, const gchar *key);
|
||||||
|
void gm_options_set_int(GmOptions *options, const gchar *key, int value);
|
||||||
|
int gm_options_get_int(GmOptions *options, const gchar *key);
|
||||||
|
|
||||||
|
void gm_options_save(GmOptions *options);
|
||||||
|
void gm_options_save_as(GmOptions *options, const gchar *filename);
|
||||||
|
void gm_options_load(GmOptions *options, const gchar *filename);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __GM_OPTIONS_H__ */
|
|
@ -0,0 +1,182 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <glib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <strings.h>
|
||||||
|
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-pixbuf.h"
|
||||||
|
|
||||||
|
static GList *gm_pixbuf_directories = NULL;
|
||||||
|
static GList *gm_pixbufs = NULL;
|
||||||
|
|
||||||
|
GdkPixbuf *gm_pixbuf_create(const gchar * filename, int width, int height);
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_pixbuf_add_directory(const gchar *directory) {
|
||||||
|
gm_pixbuf_directories =
|
||||||
|
g_list_prepend(gm_pixbuf_directories, g_strdup(directory));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_pixbuf_init() {
|
||||||
|
gm_pixbuf_add_directory(PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_pixbuf_fini() {
|
||||||
|
GList *l;
|
||||||
|
GmPixbufInfo *i;
|
||||||
|
|
||||||
|
for (l = gm_pixbuf_directories; l; l = l->next) {
|
||||||
|
g_free(l->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(gm_pixbuf_directories);
|
||||||
|
|
||||||
|
for (l = gm_pixbufs; l; l = l->next) {
|
||||||
|
i = (GmPixbufInfo *)(l->data);
|
||||||
|
g_free(i->name);
|
||||||
|
g_object_unref(i->pixbuf);
|
||||||
|
g_free(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(gm_pixbufs);
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_pixbuf_find(const gchar *filename) {
|
||||||
|
GList *elem;
|
||||||
|
|
||||||
|
if (g_file_test(filename, G_FILE_TEST_EXISTS)) {
|
||||||
|
return g_strdup(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (elem = gm_pixbuf_directories; elem; elem = elem->next) {
|
||||||
|
gchar *pathname =
|
||||||
|
g_strdup_printf("%s%s%s", (gchar *) elem->data,
|
||||||
|
G_DIR_SEPARATOR_S, filename);
|
||||||
|
|
||||||
|
if (g_file_test(pathname, G_FILE_TEST_EXISTS)) {
|
||||||
|
return pathname;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(pathname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkPixbuf *
|
||||||
|
gm_pixbuf_create(const gchar * filename, int width, int height) {
|
||||||
|
gchar *pathname = NULL, *ext;
|
||||||
|
GdkPixbuf *pixbuf = NULL;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
if (!filename || strlen(filename) == 0) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
pathname = gm_pixbuf_find(filename);
|
||||||
|
|
||||||
|
if (!pathname) {
|
||||||
|
debug_msg(1, "gm_pixbuf_create: couldn't find pixbuf file: %s", filename);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ext = rindex(pathname, '.');
|
||||||
|
|
||||||
|
if (width < 1 || height < 1) {
|
||||||
|
pixbuf = gdk_pixbuf_new_from_file(pathname, &error);
|
||||||
|
} else {
|
||||||
|
pixbuf = gdk_pixbuf_new_from_file_at_size(pathname, width, height, &error);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!pixbuf) {
|
||||||
|
debug_msg(1, "gm_pixbuf_create: failed to load pixbuf from file: %s: %s\n",
|
||||||
|
pathname, error->message);
|
||||||
|
g_error_free(error);
|
||||||
|
error = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(pathname);
|
||||||
|
return pixbuf;
|
||||||
|
}
|
||||||
|
|
||||||
|
GdkPixbuf *
|
||||||
|
gm_pixbuf_get_at_size(const gchar *filename, int width, int height) {
|
||||||
|
GdkPixbuf *pix;
|
||||||
|
GList *elem;
|
||||||
|
GmPixbufInfo *i;
|
||||||
|
|
||||||
|
for (elem = gm_pixbufs; elem; elem = elem->next) {
|
||||||
|
i = (GmPixbufInfo *) (elem->data);
|
||||||
|
|
||||||
|
if (strcmp(i->name, filename) == 0 &&
|
||||||
|
i->width == width && i->height == height) {
|
||||||
|
return i->pixbuf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not found, so create it
|
||||||
|
pix = gm_pixbuf_create(filename, width, height);
|
||||||
|
|
||||||
|
if (pix) {
|
||||||
|
i = g_new(GmPixbufInfo, 1);
|
||||||
|
i->name = g_strdup(filename);
|
||||||
|
i->width = width;
|
||||||
|
i->height = height;
|
||||||
|
i->pixbuf = pix;
|
||||||
|
gm_pixbufs = g_list_append(gm_pixbufs, i);
|
||||||
|
return pix;
|
||||||
|
} else {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns pixbuf if it is already loaded in pixmaps
|
||||||
|
GdkPixbuf *
|
||||||
|
gm_pixbuf_get(const gchar *filename) {
|
||||||
|
return gm_pixbuf_get_at_size(filename, -1, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void gm_pixbuf_set_alpha(GdkPixbuf **pixs, guchar alpha) {
|
||||||
|
int width, height, n_channels, rowstride, y, x;
|
||||||
|
GdkPixbuf *pix;
|
||||||
|
guchar *pixels, *p;
|
||||||
|
|
||||||
|
if (!gdk_pixbuf_get_has_alpha(*pixs)) {
|
||||||
|
pix = gdk_pixbuf_add_alpha(*pixs, FALSE, 0, 0, 0);
|
||||||
|
gdk_pixbuf_unref(*pixs);
|
||||||
|
} else {
|
||||||
|
pix = *pixs;
|
||||||
|
}
|
||||||
|
|
||||||
|
n_channels = gdk_pixbuf_get_n_channels(pix);
|
||||||
|
|
||||||
|
if (gdk_pixbuf_get_colorspace(pix) != GDK_COLORSPACE_RGB ||
|
||||||
|
gdk_pixbuf_get_bits_per_sample(pix) != 8 ||
|
||||||
|
!gdk_pixbuf_get_has_alpha(pix) ||
|
||||||
|
n_channels != 4) {
|
||||||
|
*pixs = pix;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
width = gdk_pixbuf_get_width(pix);
|
||||||
|
height = gdk_pixbuf_get_height(pix);
|
||||||
|
rowstride = gdk_pixbuf_get_rowstride(pix);
|
||||||
|
pixels = gdk_pixbuf_get_pixels(pix);
|
||||||
|
p = pixels;
|
||||||
|
|
||||||
|
for (y = 0; y < height; y++) {
|
||||||
|
for (x = 0; x < width; x++) {
|
||||||
|
p[3] = alpha;
|
||||||
|
p = p + n_channels;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*pixs = pix;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef gm_pixbuf_H
|
||||||
|
#define gm_pixbuf_H 1
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
typedef struct _GmPixbufInfo {
|
||||||
|
gchar *name;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
GdkPixbuf *pixbuf;
|
||||||
|
} GmPixbufInfo;
|
||||||
|
|
||||||
|
void gm_pixbuf_init();
|
||||||
|
void gm_pixbuf_fini();
|
||||||
|
|
||||||
|
void gm_pixbuf_add_directory(const gchar *directory);
|
||||||
|
|
||||||
|
GdkPixbuf *gm_pixbuf_get(const gchar *filename);
|
||||||
|
GdkPixbuf *gm_pixbuf_get_at_size(const gchar *filename, int width, int height);
|
||||||
|
|
||||||
|
void gm_pixbuf_set_alpha(GdkPixbuf **pixs, guchar alpha);
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,663 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HASRUBY
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <ruby.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs-mime-utils.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-app.h"
|
||||||
|
#include "gm-script.h"
|
||||||
|
#include "gm-scripts-dialog.h"
|
||||||
|
#include "gm-net.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
|
||||||
|
#define RB_CALLBACK(x) (VALUE (*)())(x)
|
||||||
|
|
||||||
|
static VALUE script_world_name(VALUE self);
|
||||||
|
VALUE script_world_create(world *wld);
|
||||||
|
void script_world_class_init();
|
||||||
|
void script_client_class_init();
|
||||||
|
|
||||||
|
static VALUE cWorld, cClient;
|
||||||
|
static gboolean didInit = FALSE;
|
||||||
|
static GList *funcs = NULL;
|
||||||
|
static GList *scriptFiles = NULL;
|
||||||
|
static gchar *fileInsp;
|
||||||
|
static GList *mondirs = NULL;
|
||||||
|
|
||||||
|
void gm_script_monitor_cb(GnomeVFSMonitorHandle *handle,
|
||||||
|
const gchar *monitor_uri, const gchar *info_uri,
|
||||||
|
GnomeVFSMonitorEventType event_type,
|
||||||
|
gpointer user_data) {
|
||||||
|
gchar *filename = gnome_vfs_get_local_path_from_uri(info_uri);
|
||||||
|
|
||||||
|
switch (event_type) {
|
||||||
|
case GNOME_VFS_MONITOR_EVENT_CHANGED:
|
||||||
|
gm_script_reload_file(filename);
|
||||||
|
break;
|
||||||
|
case GNOME_VFS_MONITOR_EVENT_DELETED:
|
||||||
|
gm_script_remove_file(filename);
|
||||||
|
break;
|
||||||
|
case GNOME_VFS_MONITOR_EVENT_CREATED:
|
||||||
|
gm_script_add_file(filename);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
g_free(filename);
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if_scripts_update();
|
||||||
|
g_free(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_destroy_function(script_function *fi) {
|
||||||
|
g_free(fi->name);
|
||||||
|
g_free(fi->fname);
|
||||||
|
g_free(fi->filename);
|
||||||
|
g_free(fi->description);
|
||||||
|
g_free(fi);
|
||||||
|
}
|
||||||
|
|
||||||
|
script_function *
|
||||||
|
script_find(gchar *name) {
|
||||||
|
GList *func;
|
||||||
|
script_function *f;
|
||||||
|
|
||||||
|
for (func = funcs; func; func = func->next) {
|
||||||
|
f = (script_function *)func->data;
|
||||||
|
|
||||||
|
if (strcasecmp(f->name, name) == 0) {
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
script_add(gchar *name, gchar *fname, gchar *description, gchar *filename) {
|
||||||
|
script_function *func;
|
||||||
|
gchar *basedir = PACKAGE_DATA_DIR "/" PACKAGE "/scripts";
|
||||||
|
|
||||||
|
if (script_find(name) == NULL) {
|
||||||
|
func = g_new(script_function, 1);
|
||||||
|
|
||||||
|
if (strncmp(filename, basedir, strlen(basedir)) == 0) {
|
||||||
|
func->type = ST_SHARE;
|
||||||
|
} else {
|
||||||
|
func->type = ST_USER;
|
||||||
|
}
|
||||||
|
|
||||||
|
func->name = g_strdup(name);
|
||||||
|
func->fname = g_strdup(fname);
|
||||||
|
func->filename = g_strdup(filename);
|
||||||
|
func->description = g_strdup(description);
|
||||||
|
|
||||||
|
funcs = g_list_append(funcs, func);
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
register_func(int argc, VALUE *argv, VALUE self) {
|
||||||
|
char *name, *fname = NULL, *description = NULL;
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
if (argc > 1) {
|
||||||
|
name = rb_string_value_cstr(&argv[0]);
|
||||||
|
description = rb_string_value_cstr(&argv[1]);
|
||||||
|
|
||||||
|
if (argc == 2) {
|
||||||
|
fname = name;
|
||||||
|
} else {
|
||||||
|
fname = rb_string_value_cstr(&argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (script_add(name, fname, description, fileInsp)) {
|
||||||
|
msg = g_strdup_printf(_("Register function '%s' from '%s'"), name, fileInsp);
|
||||||
|
debug_msg(1, "register_func: adding script function %s from %s", name, fileInsp);
|
||||||
|
if_scripts_add(SCRIPTC_MSG, msg);
|
||||||
|
g_free(msg);
|
||||||
|
return Qtrue;
|
||||||
|
} else {
|
||||||
|
msg = g_strdup_printf(_("Script '%s' is already defined"), name);
|
||||||
|
debug_msg(1, "register_func: script function %s already defined!", name);
|
||||||
|
if_scripts_add(SCRIPTC_ERROR, msg);
|
||||||
|
g_free(msg);
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
register_functions_wrap(VALUE arg) {
|
||||||
|
return rb_eval_string("register_functions");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_define_world(VALUE *wld) {
|
||||||
|
rb_define_variable("$world", wld);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_error() {
|
||||||
|
int c;
|
||||||
|
VALUE lasterr;
|
||||||
|
char *err;
|
||||||
|
gchar *msg;
|
||||||
|
VALUE ary;
|
||||||
|
|
||||||
|
if(!NIL_P(ruby_errinfo)) {
|
||||||
|
|
||||||
|
lasterr = rb_gv_get("$!");
|
||||||
|
err = RSTRING(rb_obj_as_string(lasterr))->ptr;
|
||||||
|
|
||||||
|
debug_msg(1, "script_error: Error while executing Ruby code: %s", err);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("Error on executing: %s"), err);
|
||||||
|
if_scripts_add(SCRIPTC_ERROR, msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
ary = rb_funcall(ruby_errinfo, rb_intern("backtrace"), 0);
|
||||||
|
debug_msg(1, "script_error: Ruby backtrace:");
|
||||||
|
if_scripts_add(SCRIPTC_ERROR, _("Ruby backtrace:"));
|
||||||
|
|
||||||
|
for (c = 0; c < RARRAY(ary)->len; c++) {
|
||||||
|
debug_msg(1, "script_error: \tfrom %s", RSTRING(RARRAY(ary)->ptr[c])->ptr);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("\tfrom %s"), RSTRING(RARRAY(ary)->ptr[c])->ptr);
|
||||||
|
if_scripts_add(SCRIPTC_ERROR, msg);
|
||||||
|
g_free(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
do_ruby(VALUE (*body)(), VALUE arg) {
|
||||||
|
int status;
|
||||||
|
|
||||||
|
rb_protect(body, arg, &status);
|
||||||
|
|
||||||
|
if (status != 0) {
|
||||||
|
script_error();
|
||||||
|
ruby_cleanup(status);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
function_run(script_info *arg) {
|
||||||
|
VALUE ret;
|
||||||
|
gchar *argstr;
|
||||||
|
gchar *funcAll;
|
||||||
|
|
||||||
|
if (arg->argstr) {
|
||||||
|
argstr = str_escape(arg->argstr);
|
||||||
|
funcAll = g_strconcat(arg->name, "(\"", argstr, "\")", NULL);
|
||||||
|
g_free(argstr);
|
||||||
|
} else {
|
||||||
|
funcAll = g_strconcat(arg->name, "()", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = rb_eval_string(funcAll);
|
||||||
|
g_free(funcAll);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
script_run(world *wld, script_function *f, gchar *argstr) {
|
||||||
|
VALUE rWld;
|
||||||
|
VALUE rClient;
|
||||||
|
gchar *msg;
|
||||||
|
script_info *info = g_new(script_info, 1);
|
||||||
|
|
||||||
|
info->name = g_strdup(f->fname);
|
||||||
|
|
||||||
|
if (argstr) {
|
||||||
|
info->argstr = g_strdup(argstr);
|
||||||
|
msg = g_strdup_printf(_("Run script '%s' from '%s' (%s)"), f->fname,
|
||||||
|
f->filename, argstr);
|
||||||
|
} else {
|
||||||
|
info->argstr = NULL;
|
||||||
|
msg = g_strdup_printf(_("Run script '%s' from '%s' ()"), f->fname,
|
||||||
|
f->filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
if_scripts_add(SCRIPTC_RUN, msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
do_ruby(RB_CALLBACK(rb_load_file), (VALUE) f->filename);
|
||||||
|
ruby_exec();
|
||||||
|
|
||||||
|
rWld = script_world_create(wld);
|
||||||
|
rb_define_variable("$world", &rWld);
|
||||||
|
|
||||||
|
rClient = rb_class_new_instance(0, NULL, cClient);
|
||||||
|
rb_define_variable("$client", &rClient);
|
||||||
|
|
||||||
|
do_ruby(RB_CALLBACK(function_run), (VALUE) info);
|
||||||
|
|
||||||
|
g_free(info->name);
|
||||||
|
|
||||||
|
if (info->argstr) {
|
||||||
|
g_free(info->argstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(info);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *script_get_scripts() {
|
||||||
|
return funcs;
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *script_get_files() {
|
||||||
|
return scriptFiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_register_functions(gchar *filename) {
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
fileInsp = filename;
|
||||||
|
debug_msg(1, "script_register_functions: registering functions in %s", filename);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("Registering functions from '%s'"), filename);
|
||||||
|
if_scripts_add(SCRIPTC_MSG, msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
if (!do_ruby(RB_CALLBACK(rb_load_file), (VALUE) filename)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ruby_exec();
|
||||||
|
|
||||||
|
rb_define_global_function("register_func", ®ister_func, -1);
|
||||||
|
|
||||||
|
do_ruby(RB_CALLBACK(register_functions_wrap), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_remove_file(const gchar *uri) {
|
||||||
|
GList *f, *l;
|
||||||
|
script_function *func;
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
l = g_list_copy(scriptFiles);
|
||||||
|
|
||||||
|
for (f = l; f; f = f->next) {
|
||||||
|
if (strcmp(f->data, uri) == 0) {
|
||||||
|
scriptFiles = g_list_remove(scriptFiles, f->data);
|
||||||
|
g_free(f->data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(l);
|
||||||
|
|
||||||
|
l = g_list_copy(funcs);
|
||||||
|
|
||||||
|
for (f = l; f; f = f->next) {
|
||||||
|
func = (script_function *)(f->data);
|
||||||
|
|
||||||
|
if (strcmp(func->filename, uri) == 0) {
|
||||||
|
msg = g_strdup_printf(_("Removing function `%s' from `%s'!"), func->name,
|
||||||
|
func->filename);
|
||||||
|
debug_msg(1, "script_remove_file: %s", msg);
|
||||||
|
if_scripts_add(SCRIPTC_MSG, msg);
|
||||||
|
g_free(msg);
|
||||||
|
funcs = g_list_remove(funcs, func);
|
||||||
|
script_destroy_function(func);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
script_add_file(const gchar *uri) {
|
||||||
|
GList *f;
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
for (f = scriptFiles; f; f = f->next) {
|
||||||
|
if (strcmp(f->data, uri) == 0) {
|
||||||
|
msg = g_strdup_printf(_("File `%s' already added!"), uri);
|
||||||
|
debug_msg(1, "script_add_file: %s", msg);
|
||||||
|
if_scripts_add(SCRIPTC_MSG, msg);
|
||||||
|
g_free(msg);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("File `%s' added!"), uri);
|
||||||
|
debug_msg(1, "script_add_file: %s", msg);
|
||||||
|
if_scripts_add(SCRIPTC_MSG, msg);
|
||||||
|
g_free(msg);
|
||||||
|
scriptFiles = g_list_append(scriptFiles, strdup(uri));
|
||||||
|
script_register_functions((gchar *)uri);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_reload_file(const gchar *uri) {
|
||||||
|
script_remove_file(uri);
|
||||||
|
script_add_file(uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_check_dir(gchar *dirname) {
|
||||||
|
gchar *filename;
|
||||||
|
gchar *file;
|
||||||
|
GDir *d;
|
||||||
|
GnomeVFSMonitorHandle *handle;
|
||||||
|
|
||||||
|
if (g_file_test(dirname, G_FILE_TEST_EXISTS) &&
|
||||||
|
g_file_test(dirname, G_FILE_TEST_IS_DIR)) {
|
||||||
|
|
||||||
|
if ((d = g_dir_open(dirname, 0, NULL))) {
|
||||||
|
while ((file = (gchar *)g_dir_read_name(d))) {
|
||||||
|
filename = g_strconcat(dirname, "/", file, NULL);
|
||||||
|
script_add_file(filename);
|
||||||
|
g_free(filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (!g_file_test(dirname, G_FILE_TEST_EXISTS)) {
|
||||||
|
mkdir(dirname, 0750);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_file_test(dirname, G_FILE_TEST_EXISTS)) {
|
||||||
|
|
||||||
|
gnome_vfs_monitor_add(&handle, dirname, GNOME_VFS_MONITOR_DIRECTORY,
|
||||||
|
script_monitor_cb, NULL);
|
||||||
|
|
||||||
|
mondirs = g_list_append(mondirs, handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_init() {
|
||||||
|
gchar *path = g_strconcat(main_get_app_path(), "/scripts", NULL);
|
||||||
|
|
||||||
|
ruby_init();
|
||||||
|
|
||||||
|
if (!didInit) {
|
||||||
|
script_world_class_init();
|
||||||
|
script_client_class_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
script_check_dir(path);
|
||||||
|
script_check_dir(PACKAGE_DATA_DIR "/" PACKAGE "/scripts");
|
||||||
|
|
||||||
|
g_free(path);
|
||||||
|
|
||||||
|
didInit = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_fini() {
|
||||||
|
GList *f;
|
||||||
|
script_function *fi;
|
||||||
|
gchar *filename;
|
||||||
|
|
||||||
|
for (f = funcs; f; f = f->next) {
|
||||||
|
fi = (script_function *)f->data;
|
||||||
|
script_destroy_function(fi);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(funcs);
|
||||||
|
funcs = NULL;
|
||||||
|
|
||||||
|
for (f = scriptFiles; f; f = f->next) {
|
||||||
|
filename = (gchar *)(f->data);
|
||||||
|
g_free(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(scriptFiles);
|
||||||
|
scriptFiles = NULL;
|
||||||
|
|
||||||
|
for (f = mondirs; f; f = f->next) {
|
||||||
|
gnome_vfs_monitor_cancel((GnomeVFSMonitorHandle *)f->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(mondirs);
|
||||||
|
mondirs = NULL;
|
||||||
|
|
||||||
|
ruby_finalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_flush_and_reload() {
|
||||||
|
if_scripts_add(SCRIPTC_MSG, _("Flushing scripts..."));
|
||||||
|
script_fini();
|
||||||
|
|
||||||
|
if_scripts_add(SCRIPTC_MSG, _("Reloading scripts..."));
|
||||||
|
script_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CLASS FUNCTIONS */
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_name(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
return rb_str_new2(options_get_str(wld->settings, "name"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_host(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
return rb_str_new2(options_get_str(wld->settings, "host"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_port(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
return rb_str_new2(options_get_str(wld->settings, "port"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_writeln(VALUE self, VALUE str) {
|
||||||
|
world *wld;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
world_writeln(wld, strVal);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_sendln(VALUE self, VALUE str) {
|
||||||
|
world *wld;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
net_send_line(wld, (unsigned char *)strVal);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_input(VALUE self, VALUE str) {
|
||||||
|
world *wld;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
world_process_input(wld, strVal);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_loaded(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
if (wld->loaded) {
|
||||||
|
return Qtrue;
|
||||||
|
} else {
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_connected(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
if (wld->net.state == NET_CONNECTED) {
|
||||||
|
return Qtrue;
|
||||||
|
} else {
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_quit(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
world_unload(wld);
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_connect(int argc, VALUE *argv, VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
gchar *strHost, *strPort;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
if (argc == 0) {
|
||||||
|
strHost = options_get_str(wld->settings, "host");
|
||||||
|
} else {
|
||||||
|
strHost = rb_string_value_cstr(&(argv[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc == 0 || argc == 1) {
|
||||||
|
strPort = options_get_str(wld->settings, "port");
|
||||||
|
} else {
|
||||||
|
strPort = rb_string_value_cstr(&(argv[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
net_connect_to(wld, strHost, strPort);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_world_disconnect(VALUE self) {
|
||||||
|
world *wld;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, world, wld);
|
||||||
|
|
||||||
|
net_do_disconnect(wld);
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_world_class_init() {
|
||||||
|
cWorld = rb_define_class("World", rb_cObject);
|
||||||
|
|
||||||
|
rb_define_method(cWorld, "name", script_world_name, 0);
|
||||||
|
rb_define_method(cWorld, "host", script_world_host, 0);
|
||||||
|
rb_define_method(cWorld, "port", script_world_port, 0);
|
||||||
|
|
||||||
|
rb_define_method(cWorld, "writeln", script_world_writeln, 1);
|
||||||
|
rb_define_method(cWorld, "println", script_world_writeln, 1);
|
||||||
|
rb_define_method(cWorld, "sendln", script_world_sendln, 1);
|
||||||
|
rb_define_method(cWorld, "input", script_world_input, 1);
|
||||||
|
rb_define_method(cWorld, "quit", script_world_quit, 0);
|
||||||
|
rb_define_method(cWorld, "connect", script_world_connect, -1);
|
||||||
|
rb_define_method(cWorld, "disconnect", script_world_disconnect, 0);
|
||||||
|
rb_define_method(cWorld, "loaded?", script_world_loaded, 0);
|
||||||
|
rb_define_method(cWorld, "connected?", script_world_connected, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
script_world_create(world *wld) {
|
||||||
|
VALUE tData = Data_Wrap_Struct(cWorld, 0, 0, wld);
|
||||||
|
|
||||||
|
return tData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_client_version(VALUE self) {
|
||||||
|
return rb_str_new2(VERSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_client_worlds(VALUE self) {
|
||||||
|
GList *wld;
|
||||||
|
VALUE ar = rb_ary_new();
|
||||||
|
VALUE oWld;
|
||||||
|
|
||||||
|
for (wld = world_get_worlds(); wld; wld = wld->next) {
|
||||||
|
oWld = script_world_create((world *)(wld->data));
|
||||||
|
rb_ary_push(ar, oWld);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ar;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
script_client_open(VALUE self, VALUE str) {
|
||||||
|
world *wld;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
wld = world_get_by_name(strVal);
|
||||||
|
|
||||||
|
if (wld == NULL) {
|
||||||
|
return Qfalse;
|
||||||
|
} else {
|
||||||
|
world_load(wld);
|
||||||
|
return Qtrue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
script_client_class_init() {
|
||||||
|
cClient = rb_define_class("Client", rb_cObject);
|
||||||
|
|
||||||
|
rb_define_method(cClient, "version", script_client_version, 0);
|
||||||
|
rb_define_method(cClient, "worlds", script_client_worlds, 0);
|
||||||
|
rb_define_method(cClient, "open", script_client_open, 1);
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,44 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HASRUBY
|
||||||
|
#ifndef __GM_SCRIPT_H__
|
||||||
|
#define __GM_SCRIPT_H__
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "gm-world.h"
|
||||||
|
|
||||||
|
enum GmScriptType {
|
||||||
|
ST_USER,
|
||||||
|
ST_SHARE
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _GmScriptFunction {
|
||||||
|
enum scriptType type;
|
||||||
|
gchar *name;
|
||||||
|
gchar *fname;
|
||||||
|
gchar *filename;
|
||||||
|
gchar *description;
|
||||||
|
} GmScriptFunction;
|
||||||
|
|
||||||
|
typedef struct _GmScriptInfo {
|
||||||
|
gchar *name;
|
||||||
|
gchar *argstr;
|
||||||
|
} GmScriptInfo;
|
||||||
|
|
||||||
|
void gm_script_init();
|
||||||
|
void gm_script_fini();
|
||||||
|
void gm_script_flush_and_reload();
|
||||||
|
void gm_script_reload_file(const gchar *uri);
|
||||||
|
gboolean gm_script_add_file(const gchar *uri);
|
||||||
|
void gm_script_remove_file(const gchar *uri);
|
||||||
|
|
||||||
|
GmScriptFunction *gm_script_find(gchar *name);
|
||||||
|
gboolean gm_script_run(GmWorld *world, GmScriptFunction *f, gchar *argstr);
|
||||||
|
|
||||||
|
GList *script_get_scripts();
|
||||||
|
GList *script_get_files();
|
||||||
|
|
||||||
|
#endif /* __GM_SCRIPT_H__ */
|
||||||
|
#endif
|
|
@ -0,0 +1,844 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include <gtksourceview/gtksourceview.h>
|
||||||
|
#include <gtksourceview/gtksourcelanguage.h>
|
||||||
|
#include <gtksourceview/gtksourcelanguagesmanager.h>
|
||||||
|
#include <gtksourceview/gtksourcetag.h>
|
||||||
|
|
||||||
|
#include <libgnomevfs/gnome-vfs.h>
|
||||||
|
#include <glade/glade.h>
|
||||||
|
|
||||||
|
#include "gm-scripts.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-app.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
#include "gm-app-view.h"
|
||||||
|
|
||||||
|
void on_gm_scripts_dialog_script_added(GmScripts *scripts, GmScript *script,
|
||||||
|
gpointer user_data);
|
||||||
|
void on_gm_scripts_dialog_script_changed(GmScripts *scripts, GmScript *script,
|
||||||
|
gpointer user_data);
|
||||||
|
void on_gm_scripts_dialog_script_removed(GmScripts *scripts, GmScript *script,
|
||||||
|
gpointer user_data);
|
||||||
|
void on_gm_scripts_dialog_message(GmScripts *scripts, gchar *message,
|
||||||
|
gpointer user_data);
|
||||||
|
void on_gm_scripts_dialog_error(GmScripts *scripts, gchar *message,
|
||||||
|
gpointer user_data);
|
||||||
|
void on_gm_scripts_dialog_run(GmScripts *scripts, gchar *message,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
typedef enum _MessageType {
|
||||||
|
SCRIPT_MESSAGE,
|
||||||
|
SCRIPT_ERROR,
|
||||||
|
SCRIPT_RUN
|
||||||
|
} MessageType;
|
||||||
|
|
||||||
|
typedef enum _scripts_columns {
|
||||||
|
SCRIPTS_NAME,
|
||||||
|
SCRIPTS_OBJECT,
|
||||||
|
SCRIPTS_N
|
||||||
|
} scripts_columns;
|
||||||
|
|
||||||
|
typedef struct _SelectionInfo {
|
||||||
|
GtkTreeView *view;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter seliter;
|
||||||
|
GtkTreeIter parent;
|
||||||
|
gboolean has_parent;
|
||||||
|
gboolean can_save;
|
||||||
|
gchar *filename;
|
||||||
|
} SelectionInfo;
|
||||||
|
|
||||||
|
typedef struct _GmScriptsDialog {
|
||||||
|
GtkTextTagTable *tag_table;
|
||||||
|
GladeXML *xml;
|
||||||
|
GtkTextBuffer *text_buffer_console;
|
||||||
|
gchar *current_edit;
|
||||||
|
GtkTextBuffer *text_buffer_editor;
|
||||||
|
|
||||||
|
GtkWidget *dialog;
|
||||||
|
GtkWidget *text_view_console;
|
||||||
|
GtkWidget *statusbar_editor;
|
||||||
|
GtkWidget *button_save;
|
||||||
|
GtkWidget *tree_view_scripts;
|
||||||
|
GtkWidget *tree_view_files;
|
||||||
|
GtkWidget *button_delete;
|
||||||
|
|
||||||
|
SelectionInfo info;
|
||||||
|
} GmScriptsDialog;
|
||||||
|
|
||||||
|
static GmScriptsDialog *scripts_dialog = NULL;
|
||||||
|
|
||||||
|
#define G_SCRIPTS_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-scripts.glade"
|
||||||
|
|
||||||
|
gboolean on_gm_scripts_dialog_delete(GtkWidget *widget, GdkEvent *event,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
void on_files_changed(GtkTreeSelection *treeselection, gpointer user_data);
|
||||||
|
void on_tree_view_files_row_activated(GtkTreeView *treeview, GtkTreePath *arg1,
|
||||||
|
GtkTreeViewColumn *arg2, gpointer user_data);
|
||||||
|
void on_text_buffer_editor_modified_changed(GtkTextBuffer *buffer,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
|
void on_tool_button_new_clicked(GtkToolButton *button, gpointer user_data);
|
||||||
|
void on_tool_button_save_clicked(GtkToolButton *button, gpointer user_data);
|
||||||
|
void on_tool_button_save_as_clicked(GtkToolButton *button, gpointer user_data);
|
||||||
|
void on_tool_button_delete_clicked(GtkToolButton *button, gpointer user_data);
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_dialog_can_write(gchar *filename) {
|
||||||
|
return (access(filename, W_OK) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_set_status(gchar *msg) {
|
||||||
|
gtk_statusbar_pop(GTK_STATUSBAR(scripts_dialog->statusbar_editor),
|
||||||
|
0);
|
||||||
|
gtk_statusbar_push(GTK_STATUSBAR(scripts_dialog->statusbar_editor),
|
||||||
|
0, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_dialog_editor_save(gchar *filename) {
|
||||||
|
FILE *f;
|
||||||
|
gchar *msg, *text;
|
||||||
|
GtkTextIter start, end;
|
||||||
|
|
||||||
|
if (!filename) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
f = fopen(filename, "w");
|
||||||
|
|
||||||
|
if (f) {
|
||||||
|
gtk_text_buffer_get_start_iter(scripts_dialog->text_buffer_editor,
|
||||||
|
&start);
|
||||||
|
gtk_text_buffer_get_end_iter(scripts_dialog->text_buffer_editor, &end);
|
||||||
|
text = gtk_text_buffer_get_text(scripts_dialog->text_buffer_editor,
|
||||||
|
&start, &end, TRUE);
|
||||||
|
|
||||||
|
fputs(text, f);
|
||||||
|
|
||||||
|
msg = g_strconcat(_("Saved "), filename, NULL);
|
||||||
|
gm_scripts_dialog_set_status(msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
if (scripts_dialog->current_edit &&
|
||||||
|
filename != scripts_dialog->current_edit) {
|
||||||
|
g_free(scripts_dialog->current_edit);
|
||||||
|
scripts_dialog->current_edit = g_strdup(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
msg = g_strconcat(_("Saving failed: "), strerror(errno), NULL);
|
||||||
|
gm_error_dialog(msg, GTK_WINDOW(scripts_dialog->dialog));
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_editor_load(SelectionInfo *info) {
|
||||||
|
FILE *f;
|
||||||
|
gchar line[1024];
|
||||||
|
GtkTextIter end;
|
||||||
|
gchar *lline, *msg;
|
||||||
|
|
||||||
|
gtk_text_buffer_set_text(scripts_dialog->text_buffer_editor, "", 0);
|
||||||
|
gtk_text_buffer_get_end_iter(scripts_dialog->text_buffer_editor, &end);
|
||||||
|
|
||||||
|
if (info) {
|
||||||
|
f = fopen(info->filename, "r");
|
||||||
|
|
||||||
|
if (f) {
|
||||||
|
while (fgets((char *) &line, 1024 - 1, f) != NULL) {
|
||||||
|
lline = g_locale_to_utf8((gchar *)&line, strlen((char *)&line),
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if (lline) {
|
||||||
|
gtk_text_buffer_insert(scripts_dialog->text_buffer_editor,
|
||||||
|
&end, lline, strlen(lline));
|
||||||
|
g_free(lline);
|
||||||
|
} else {
|
||||||
|
gtk_text_buffer_insert(scripts_dialog->text_buffer_editor,
|
||||||
|
&end, (gchar *)&line, strlen((char *)&line));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
|
gtk_widget_set_sensitive(scripts_dialog->button_save,
|
||||||
|
info->can_save);
|
||||||
|
|
||||||
|
g_free(scripts_dialog->current_edit);
|
||||||
|
scripts_dialog->current_edit = g_strdup(info->filename);
|
||||||
|
|
||||||
|
msg = g_strconcat(_("Loaded "), info->filename, NULL);
|
||||||
|
gm_scripts_dialog_set_status(msg);
|
||||||
|
g_free(msg);
|
||||||
|
} else {
|
||||||
|
debug_msg(1, "GmScript.EditorLoad: file (%s) could not be read: %s",
|
||||||
|
scripts_dialog->current_edit, strerror(errno));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
g_free(scripts_dialog->current_edit);
|
||||||
|
scripts_dialog->current_edit = NULL;
|
||||||
|
|
||||||
|
gm_scripts_dialog_set_status(_("New <untitled>"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_init_console() {
|
||||||
|
GtkTextView *txt = GTK_TEXT_VIEW(scripts_dialog->text_view_console);
|
||||||
|
PangoFontDescription *f;
|
||||||
|
|
||||||
|
gtk_text_view_set_buffer(txt, scripts_dialog->text_buffer_console);
|
||||||
|
gtk_text_view_set_editable(txt, FALSE);
|
||||||
|
|
||||||
|
f =
|
||||||
|
pango_font_description_from_string("monospace 8");
|
||||||
|
|
||||||
|
if (f) {
|
||||||
|
gtk_widget_modify_font(GTK_WIDGET(txt), f);
|
||||||
|
pango_font_description_free(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_tree_add_function(GtkTreeStore *model, GtkTreeIter *parent,
|
||||||
|
GmScriptFunction *fi) {
|
||||||
|
GtkTreeIter item;
|
||||||
|
gchar *name, *description, *all, *markup;
|
||||||
|
|
||||||
|
gtk_tree_store_append(model, &item, parent);
|
||||||
|
name = g_filename_to_utf8(fi->name, strlen(fi->name), NULL,
|
||||||
|
NULL, NULL);
|
||||||
|
description = g_locale_to_utf8(fi->description, strlen(fi->description),
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
|
markup = g_markup_escape_text(description, g_utf8_strlen(description, -1));
|
||||||
|
all = g_strconcat("<b>", name, "</b>\n", markup, NULL);
|
||||||
|
gtk_tree_store_set(model, &item, SCRIPTS_NAME, all, -1);
|
||||||
|
|
||||||
|
g_free(all);
|
||||||
|
g_free(markup);
|
||||||
|
g_free(description);
|
||||||
|
g_free(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_tree_update_script_item(GmScript *script, GtkTreeIter *iter) {
|
||||||
|
GList *list;
|
||||||
|
GtkTreeStore *model = GTK_TREE_STORE(gtk_tree_view_get_model(
|
||||||
|
GTK_TREE_VIEW(scripts_dialog->tree_view_scripts)));
|
||||||
|
GtkTreeIter item;
|
||||||
|
|
||||||
|
if (gtk_tree_model_iter_children(GTK_TREE_MODEL(model), &item, iter)) {
|
||||||
|
while (gtk_tree_store_remove(model, &item));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (list = script->functions; list; list = list->next) {
|
||||||
|
gm_scripts_dialog_tree_add_function(model, iter,
|
||||||
|
(GmScriptFunction *)(list->data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_tree_update_script(GmScript *script) {
|
||||||
|
GtkTreeModel *model = gtk_tree_view_get_model(
|
||||||
|
GTK_TREE_VIEW(scripts_dialog->tree_view_scripts));
|
||||||
|
GtkTreeIter item;
|
||||||
|
GmScript *obj;
|
||||||
|
|
||||||
|
if (gtk_tree_model_iter_children(model, &item, NULL)) {
|
||||||
|
do {
|
||||||
|
gtk_tree_model_get(model, &item, SCRIPTS_OBJECT,
|
||||||
|
&obj, -1);
|
||||||
|
|
||||||
|
if (obj == script) {
|
||||||
|
gm_scripts_dialog_tree_update_script_item(script, &item);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} while (gtk_tree_model_iter_next(model, &item));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_tree_add_script(GmScript *script) {
|
||||||
|
GtkTreeStore *model = GTK_TREE_STORE(gtk_tree_view_get_model(
|
||||||
|
GTK_TREE_VIEW(scripts_dialog->tree_view_scripts)));
|
||||||
|
GtkTreeIter item;
|
||||||
|
gchar *name, *base;
|
||||||
|
|
||||||
|
gtk_tree_store_append(model, &item, NULL);
|
||||||
|
name = g_filename_to_utf8(script->filename, strlen(script->filename), NULL,
|
||||||
|
NULL, NULL);
|
||||||
|
base = g_path_get_basename(name);
|
||||||
|
g_free(name);
|
||||||
|
|
||||||
|
if (script->type == GM_SCRIPT_TYPE_USER) {
|
||||||
|
name = g_strconcat(_("<b>User:</b> "), base, NULL);
|
||||||
|
} else {
|
||||||
|
name = g_strconcat(_("<b>Share:</b> "), base, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(base);
|
||||||
|
gtk_tree_store_set(model, &item, SCRIPTS_NAME, name, SCRIPTS_OBJECT,
|
||||||
|
script, -1);
|
||||||
|
g_free(name);
|
||||||
|
|
||||||
|
gm_scripts_dialog_tree_update_script_item(script, &item);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_fill_tree() {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW(scripts_dialog->tree_view_scripts);
|
||||||
|
GtkTreeStore *model = GTK_TREE_STORE(gtk_tree_view_get_model(view));
|
||||||
|
GList *scripts;
|
||||||
|
|
||||||
|
gtk_tree_store_clear(model);
|
||||||
|
|
||||||
|
for (scripts = gm_scripts_scripts(gm_app_scripts(gm_app_instance()));
|
||||||
|
scripts; scripts = scripts->next) {
|
||||||
|
gm_scripts_dialog_tree_add_script((GmScript *)(scripts->data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_init_tree() {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW(scripts_dialog->tree_view_scripts);
|
||||||
|
GtkTreeStore *model = gtk_tree_store_new(SCRIPTS_N, G_TYPE_STRING,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
GtkCellRenderer *renderer;
|
||||||
|
GtkTreeViewColumn *column;
|
||||||
|
|
||||||
|
renderer = gtk_cell_renderer_text_new();
|
||||||
|
column = gtk_tree_view_column_new_with_attributes(_("Scripts"), renderer,
|
||||||
|
"markup", SCRIPTS_NAME, NULL);
|
||||||
|
|
||||||
|
gtk_tree_view_append_column(view, column);
|
||||||
|
gtk_tree_view_set_model(view, GTK_TREE_MODEL(model));
|
||||||
|
|
||||||
|
gm_scripts_dialog_fill_tree();
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_dialog_add_file(gchar *filename) {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW(scripts_dialog->tree_view_files);
|
||||||
|
GtkTreeStore *model = GTK_TREE_STORE(gtk_tree_view_get_model(view));
|
||||||
|
GtkTreeIter share, home, parent, item;
|
||||||
|
gchar *sharedir = g_strdup(PACKAGE_DATA_DIR "/" PACKAGE "/scripts");
|
||||||
|
gchar *homedir = g_strconcat(gm_app_path(gm_app_instance()), "/scripts",
|
||||||
|
NULL);
|
||||||
|
gchar *name;
|
||||||
|
|
||||||
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model), &share, "0");
|
||||||
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model), &home, "1");
|
||||||
|
|
||||||
|
name = g_filename_to_utf8(filename, strlen(filename), NULL,
|
||||||
|
NULL, NULL);
|
||||||
|
|
||||||
|
if (strncmp(sharedir, name, strlen(sharedir)) == 0) {
|
||||||
|
parent = share;
|
||||||
|
} else if (strncmp(homedir, name, strlen(homedir)) == 0) {
|
||||||
|
parent = home;
|
||||||
|
} else {
|
||||||
|
g_free(sharedir);
|
||||||
|
g_free(homedir);
|
||||||
|
g_free(name);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_tree_store_append(model, &item, &parent);
|
||||||
|
gtk_tree_store_set(model, &item, SCRIPTS_NAME, g_strrstr(name, "/") + 1,
|
||||||
|
-1);
|
||||||
|
|
||||||
|
g_free(name);
|
||||||
|
g_free(sharedir);
|
||||||
|
g_free(homedir);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_fill_files() {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW(scripts_dialog->tree_view_files);
|
||||||
|
GtkTreeStore *model = GTK_TREE_STORE(gtk_tree_view_get_model(view));
|
||||||
|
GtkTreeIter item, share, home, parent;
|
||||||
|
GtkTreePath *path;
|
||||||
|
gchar *sharedir;
|
||||||
|
gchar *name;
|
||||||
|
GList *scripts;
|
||||||
|
GmScript *script;
|
||||||
|
|
||||||
|
sharedir = g_strdup(PACKAGE_DATA_DIR "/" PACKAGE "/scripts");
|
||||||
|
|
||||||
|
gtk_tree_store_clear(model);
|
||||||
|
|
||||||
|
gtk_tree_store_append(model, &share, NULL);
|
||||||
|
gtk_tree_store_set(model, &share, SCRIPTS_NAME, _("Share"), -1);
|
||||||
|
|
||||||
|
gtk_tree_store_append(model, &home, NULL);
|
||||||
|
gtk_tree_store_set(model, &home, SCRIPTS_NAME, _("User"), -1);
|
||||||
|
|
||||||
|
for (scripts = gm_scripts_scripts(gm_app_scripts(gm_app_instance()));
|
||||||
|
scripts; scripts = scripts->next) {
|
||||||
|
script = (GmScript *)(scripts->data);
|
||||||
|
|
||||||
|
name = g_filename_to_utf8(script->filename, strlen(script->filename),
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if (strncmp(sharedir, name, strlen(sharedir)) == 0) {
|
||||||
|
parent = share;
|
||||||
|
} else {
|
||||||
|
parent = home;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_tree_store_append(model, &item, &parent);
|
||||||
|
gtk_tree_store_set(model, &item, SCRIPTS_NAME,
|
||||||
|
g_strrstr(name, "/") + 1, -1);
|
||||||
|
|
||||||
|
g_free(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &home);
|
||||||
|
gtk_tree_view_expand_to_path(view, path);
|
||||||
|
gtk_tree_path_free(path);
|
||||||
|
|
||||||
|
path = gtk_tree_model_get_path(GTK_TREE_MODEL(model), &share);
|
||||||
|
gtk_tree_view_expand_to_path(view, path);
|
||||||
|
gtk_tree_path_free(path);
|
||||||
|
|
||||||
|
g_free(sharedir);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_init_files() {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW(scripts_dialog->tree_view_files);
|
||||||
|
GtkTreeStore *model = gtk_tree_store_new(SCRIPTS_N, G_TYPE_STRING,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes(
|
||||||
|
_("Filename"), renderer, "text", SCRIPTS_NAME, NULL);
|
||||||
|
|
||||||
|
gtk_tree_view_append_column(view, column);
|
||||||
|
gtk_tree_view_set_model(view, GTK_TREE_MODEL(model));
|
||||||
|
|
||||||
|
selection = gtk_tree_view_get_selection(view);
|
||||||
|
|
||||||
|
g_signal_connect((gpointer)selection, "changed",
|
||||||
|
G_CALLBACK(on_files_changed), NULL);
|
||||||
|
gm_scripts_dialog_fill_files();
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget *
|
||||||
|
gm_scripts_dialog_init_editor() {
|
||||||
|
GtkSourceLanguagesManager *lm = gtk_source_languages_manager_new();
|
||||||
|
GtkSourceLanguage *lang;
|
||||||
|
GtkWidget *view;
|
||||||
|
PangoFontDescription *f;
|
||||||
|
|
||||||
|
lang = gtk_source_languages_manager_get_language_from_mime_type(lm,
|
||||||
|
"application/x-ruby");
|
||||||
|
|
||||||
|
view = gtk_source_view_new();
|
||||||
|
scripts_dialog->text_buffer_editor = gtk_text_view_get_buffer(
|
||||||
|
GTK_TEXT_VIEW(view));
|
||||||
|
|
||||||
|
g_signal_connect((gpointer)scripts_dialog->text_buffer_editor,
|
||||||
|
"modified-changed",
|
||||||
|
G_CALLBACK(on_text_buffer_editor_modified_changed), NULL);
|
||||||
|
|
||||||
|
if (lang) {
|
||||||
|
gtk_source_buffer_set_language(
|
||||||
|
GTK_SOURCE_BUFFER(scripts_dialog->text_buffer_editor), lang);
|
||||||
|
}
|
||||||
|
|
||||||
|
f = pango_font_description_from_string(gm_options_get(gm_app_options(
|
||||||
|
gm_app_instance()), "font-family"));
|
||||||
|
gtk_widget_modify_font(view, f);
|
||||||
|
|
||||||
|
gtk_source_view_set_insert_spaces_instead_of_tabs(GTK_SOURCE_VIEW(view),
|
||||||
|
TRUE);
|
||||||
|
gtk_source_view_set_auto_indent(GTK_SOURCE_VIEW(view), TRUE);
|
||||||
|
gtk_source_view_set_show_line_numbers(GTK_SOURCE_VIEW(view), TRUE);
|
||||||
|
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD_CHAR);
|
||||||
|
gtk_text_view_set_left_margin(GTK_TEXT_VIEW(view), 6);
|
||||||
|
gtk_text_view_set_right_margin(GTK_TEXT_VIEW(view), 6);
|
||||||
|
|
||||||
|
gtk_source_buffer_set_highlight(GTK_SOURCE_BUFFER(
|
||||||
|
scripts_dialog->text_buffer_editor), TRUE);
|
||||||
|
gtk_widget_show(view);
|
||||||
|
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkTextTag *
|
||||||
|
gm_scripts_dialog_create_tag(gchar *name, gchar *fg) {
|
||||||
|
GtkTextTag *tag;
|
||||||
|
GdkColor col;
|
||||||
|
|
||||||
|
gdk_color_parse(fg, &col);
|
||||||
|
tag = gtk_text_tag_new(name);
|
||||||
|
g_object_set(G_OBJECT(tag), "foreground-gdk", &col, NULL);
|
||||||
|
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_init() {
|
||||||
|
GmScripts *scripts = gm_app_scripts(gm_app_instance());
|
||||||
|
|
||||||
|
scripts_dialog = g_new0(GmScriptsDialog, 1);
|
||||||
|
scripts_dialog->tag_table = g_object_ref(gtk_text_tag_table_new());
|
||||||
|
scripts_dialog->dialog = NULL;
|
||||||
|
|
||||||
|
gtk_text_tag_table_add(scripts_dialog->tag_table,
|
||||||
|
gm_scripts_dialog_create_tag("scripts-run", "#445632"));
|
||||||
|
gtk_text_tag_table_add(scripts_dialog->tag_table,
|
||||||
|
gm_scripts_dialog_create_tag("scripts-msg", "#314E6C"));
|
||||||
|
gtk_text_tag_table_add(scripts_dialog->tag_table,
|
||||||
|
gm_scripts_dialog_create_tag("scripts-error", "#663822"));
|
||||||
|
|
||||||
|
scripts_dialog->text_buffer_console =
|
||||||
|
g_object_ref(gtk_text_buffer_new(scripts_dialog->tag_table));
|
||||||
|
|
||||||
|
// Attach signals to GmScripts object to know about changes
|
||||||
|
g_signal_connect(scripts, "script_added",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_script_added), NULL);
|
||||||
|
g_signal_connect(scripts, "script_changed",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_script_changed), NULL);
|
||||||
|
g_signal_connect(scripts, "script_removed",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_script_removed), NULL);
|
||||||
|
g_signal_connect(scripts, "message",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_message), NULL);
|
||||||
|
g_signal_connect(scripts, "error",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_error), NULL);
|
||||||
|
g_signal_connect(scripts, "run",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_run), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_fini() {
|
||||||
|
g_object_unref(scripts_dialog->tag_table);
|
||||||
|
g_object_unref(scripts_dialog->text_buffer_console);
|
||||||
|
g_free(scripts_dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_run(GmAppView *view) {
|
||||||
|
GtkWidget *editor;
|
||||||
|
|
||||||
|
if (scripts_dialog->dialog != NULL) {
|
||||||
|
gtk_widget_show(scripts_dialog->dialog);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
scripts_dialog->xml = glade_xml_new(G_SCRIPTS_XML, "gm_scripts_dialog", NULL);
|
||||||
|
scripts_dialog->dialog = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"gm_scripts_dialog");
|
||||||
|
scripts_dialog->text_view_console = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"text_view_console");
|
||||||
|
scripts_dialog->statusbar_editor = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"statusbar_editor");
|
||||||
|
scripts_dialog->button_save = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"tool_button_save");
|
||||||
|
scripts_dialog->tree_view_scripts = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"tree_view_scripts");
|
||||||
|
scripts_dialog->tree_view_files = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"tree_view_files");
|
||||||
|
scripts_dialog->button_delete = glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"tool_button_delete");
|
||||||
|
|
||||||
|
gm_scripts_dialog_init_console();
|
||||||
|
gm_scripts_dialog_init_tree();
|
||||||
|
gm_scripts_dialog_init_files();
|
||||||
|
|
||||||
|
editor = gm_scripts_dialog_init_editor();
|
||||||
|
|
||||||
|
gtk_container_add(GTK_CONTAINER(glade_xml_get_widget(scripts_dialog->xml,
|
||||||
|
"scrolled_window_editor")), editor);
|
||||||
|
|
||||||
|
glade_xml_signal_connect(scripts_dialog->xml, "on_gm_scripts_dialog_delete",
|
||||||
|
G_CALLBACK(on_gm_scripts_dialog_delete));
|
||||||
|
glade_xml_signal_connect(scripts_dialog->xml,
|
||||||
|
"on_tree_view_files_row_activated",
|
||||||
|
G_CALLBACK(on_tree_view_files_row_activated));
|
||||||
|
glade_xml_signal_connect(scripts_dialog->xml,
|
||||||
|
"on_tool_button_new_clicked",
|
||||||
|
G_CALLBACK(on_tool_button_new_clicked));
|
||||||
|
glade_xml_signal_connect(scripts_dialog->xml,
|
||||||
|
"on_tool_button_save_clicked",
|
||||||
|
G_CALLBACK(on_tool_button_save_clicked));
|
||||||
|
glade_xml_signal_connect(scripts_dialog->xml,
|
||||||
|
"on_tool_button_save_as_clicked",
|
||||||
|
G_CALLBACK(on_tool_button_save_as_clicked));
|
||||||
|
glade_xml_signal_connect(scripts_dialog->xml,
|
||||||
|
"on_tool_button_delete_clicked",
|
||||||
|
G_CALLBACK(on_tool_button_delete_clicked));
|
||||||
|
|
||||||
|
gtk_window_set_transient_for(GTK_WINDOW(scripts_dialog->dialog),
|
||||||
|
GTK_WINDOW(view));
|
||||||
|
gm_scripts_dialog_set_status(_("New <untitled>"));
|
||||||
|
|
||||||
|
g_object_unref(scripts_dialog->xml);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_dialog_add(MessageType mtype, gchar *msg) {
|
||||||
|
gchar *m, *tagName = NULL, *newLine;
|
||||||
|
gchar p[3] = {' ', ' ', '\0'};
|
||||||
|
GtkTextIter end;
|
||||||
|
|
||||||
|
switch (mtype) {
|
||||||
|
case SCRIPT_RUN:
|
||||||
|
p[0] = ':';
|
||||||
|
tagName = g_strdup("scripts-run");
|
||||||
|
break;
|
||||||
|
case SCRIPT_MESSAGE:
|
||||||
|
p[0] = '#';
|
||||||
|
tagName = g_strdup("scripts-msg");
|
||||||
|
break;
|
||||||
|
case SCRIPT_ERROR:
|
||||||
|
p[0] = '!';
|
||||||
|
tagName = g_strdup("scripts-error");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
m = g_strconcat(p, msg, "\n", NULL);
|
||||||
|
gtk_text_buffer_get_end_iter(scripts_dialog->text_buffer_console, &end);
|
||||||
|
|
||||||
|
// convert to UTF-8
|
||||||
|
newLine = g_locale_to_utf8(m, strlen(m), NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if (newLine == NULL) {
|
||||||
|
gtk_text_buffer_insert_with_tags_by_name(
|
||||||
|
scripts_dialog->text_buffer_console, &end, m, strlen(m),
|
||||||
|
tagName, NULL);
|
||||||
|
} else {
|
||||||
|
gtk_text_buffer_insert_with_tags_by_name(
|
||||||
|
scripts_dialog->text_buffer_console, &end, newLine,
|
||||||
|
strlen(newLine), tagName, NULL);
|
||||||
|
g_free(newLine);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(m);
|
||||||
|
g_free(tagName);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_dialog_selection_info(SelectionInfo *info) {
|
||||||
|
GtkTreeView *view = GTK_TREE_VIEW(scripts_dialog->tree_view_files);
|
||||||
|
GtkTreeModel *model = gtk_tree_view_get_model(view);
|
||||||
|
GtkTreeSelection *selection = gtk_tree_view_get_selection(view);
|
||||||
|
gchar *parentName, *name;
|
||||||
|
|
||||||
|
info->view = view;
|
||||||
|
info->model = model;
|
||||||
|
|
||||||
|
if (gtk_tree_selection_get_selected(selection, &model, &(info->seliter))) {
|
||||||
|
info->has_parent = gtk_tree_model_iter_parent(model,
|
||||||
|
&(info->parent), &(info->seliter));
|
||||||
|
|
||||||
|
if (info->has_parent) {
|
||||||
|
gtk_tree_model_get(model, &(info->parent), SCRIPTS_NAME,
|
||||||
|
&parentName, -1);
|
||||||
|
gtk_tree_model_get(model, &(info->seliter), SCRIPTS_NAME,
|
||||||
|
&name, -1);
|
||||||
|
|
||||||
|
if (strcmp(parentName, _("Share")) == 0) {
|
||||||
|
info->filename = g_strconcat(
|
||||||
|
PACKAGE_DATA_DIR "/" PACKAGE "/scripts/", name, NULL);
|
||||||
|
} else {
|
||||||
|
info->filename = g_strconcat(gm_app_path(gm_app_instance()),
|
||||||
|
"/scripts/", name, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(name);
|
||||||
|
g_free(parentName);
|
||||||
|
info->can_save = gm_scripts_dialog_can_write(info->filename);
|
||||||
|
} else {
|
||||||
|
info->filename = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CALLBACKS */
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
on_gm_scripts_dialog_delete(GtkWidget *widget, GdkEvent *event,
|
||||||
|
gpointer user_data) {
|
||||||
|
g_free(scripts_dialog->current_edit);
|
||||||
|
scripts_dialog->current_edit = NULL;
|
||||||
|
scripts_dialog->dialog = NULL;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_files_changed(GtkTreeSelection *treeselection, gpointer user_data) {
|
||||||
|
SelectionInfo info;
|
||||||
|
|
||||||
|
if (gm_scripts_dialog_selection_info(&info)) {
|
||||||
|
gtk_widget_set_sensitive(scripts_dialog->button_delete,
|
||||||
|
info.has_parent && info.can_save);
|
||||||
|
|
||||||
|
if (info.filename) {
|
||||||
|
g_free(info.filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_tree_view_files_row_activated(GtkTreeView *treeview, GtkTreePath *arg1,
|
||||||
|
GtkTreeViewColumn *arg2, gpointer user_data) {
|
||||||
|
SelectionInfo si;
|
||||||
|
|
||||||
|
if (gm_scripts_dialog_selection_info(&si) && si.filename) {
|
||||||
|
gm_scripts_dialog_editor_load(&si);
|
||||||
|
g_free(si.filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_text_buffer_editor_modified_changed(GtkTextBuffer *buffer,
|
||||||
|
gpointer user_data) {
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
if (scripts_dialog->current_edit) {
|
||||||
|
msg = g_strconcat(_("Changed "), scripts_dialog->current_edit, NULL);
|
||||||
|
} else {
|
||||||
|
msg = g_strdup(_("Changed <untitled>"));
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_scripts_dialog_set_status(msg);
|
||||||
|
g_free(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_tool_button_new_clicked(GtkToolButton *button, gpointer user_data) {
|
||||||
|
gm_scripts_dialog_editor_load(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_tool_button_save_clicked(GtkToolButton *button, gpointer user_data) {
|
||||||
|
if (scripts_dialog->current_edit) {
|
||||||
|
gm_scripts_dialog_editor_save(scripts_dialog->current_edit);
|
||||||
|
gtk_text_buffer_set_modified(scripts_dialog->text_buffer_editor, FALSE);
|
||||||
|
} else {
|
||||||
|
on_tool_button_save_as_clicked(button, user_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_tool_button_save_as_clicked(GtkToolButton *button, gpointer user_data) {
|
||||||
|
GtkWidget *dlg;
|
||||||
|
gchar *filename, *di;
|
||||||
|
|
||||||
|
dlg = gtk_file_chooser_dialog_new(_("Save file"),
|
||||||
|
GTK_WINDOW(scripts_dialog->dialog),
|
||||||
|
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||||
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
|
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (scripts_dialog->current_edit) {
|
||||||
|
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dlg),
|
||||||
|
scripts_dialog->current_edit);
|
||||||
|
} else {
|
||||||
|
di = g_strconcat(gm_app_path(gm_app_instance()),
|
||||||
|
"/scripts/untitled.rb", NULL);
|
||||||
|
gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(dlg), di);
|
||||||
|
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dlg), "untitled.rb");
|
||||||
|
g_free(di);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gtk_dialog_run(GTK_DIALOG(dlg)) == GTK_RESPONSE_ACCEPT) {
|
||||||
|
filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dlg));
|
||||||
|
|
||||||
|
if (gm_scripts_dialog_editor_save(filename)) {
|
||||||
|
gtk_text_buffer_set_modified(scripts_dialog->text_buffer_editor,
|
||||||
|
FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_destroy(dlg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_tool_button_delete_clicked(GtkToolButton *button, gpointer user_data) {
|
||||||
|
SelectionInfo info;
|
||||||
|
|
||||||
|
if (gm_scripts_dialog_selection_info(&info)) {
|
||||||
|
if (info.has_parent && info.can_save) {
|
||||||
|
remove(info.filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(info.filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Callbacks
|
||||||
|
|
||||||
|
void
|
||||||
|
on_gm_scripts_dialog_script_added(GmScripts *scripts, GmScript *script,
|
||||||
|
gpointer user_data) {
|
||||||
|
if (scripts_dialog->dialog != NULL) {
|
||||||
|
gm_scripts_dialog_tree_add_script(script);
|
||||||
|
gm_scripts_dialog_add_file(script->filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_gm_scripts_dialog_script_changed(GmScripts *scripts, GmScript *script,
|
||||||
|
gpointer user_data) {
|
||||||
|
if (scripts_dialog->dialog != NULL) {
|
||||||
|
gm_scripts_dialog_tree_update_script(script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_gm_scripts_dialog_script_removed(GmScripts *scripts, GmScript *script,
|
||||||
|
gpointer user_data) {
|
||||||
|
if (scripts_dialog->dialog != NULL) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_gm_scripts_dialog_message(GmScripts *scripts, gchar *message,
|
||||||
|
gpointer user_data) {
|
||||||
|
gm_scripts_dialog_add(SCRIPT_MESSAGE, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_gm_scripts_dialog_error(GmScripts *scripts, gchar *message,
|
||||||
|
gpointer user_data) {
|
||||||
|
gm_scripts_dialog_add(SCRIPT_ERROR, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void on_gm_scripts_dialog_run(GmScripts *scripts, gchar *message,
|
||||||
|
gpointer user_data) {
|
||||||
|
gm_scripts_dialog_add(SCRIPT_RUN, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,18 @@
|
||||||
|
#ifndef __GM_SCRIPTS_DIALOG_H__
|
||||||
|
#define __GM_SCRIPTS_DIALOG_H__
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-app-view.h"
|
||||||
|
|
||||||
|
void gm_scripts_dialog_run(GmAppView *view);
|
||||||
|
void gm_scripts_dialog_init();
|
||||||
|
void gm_scripts_dialog_fini();
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif /* __GM_SCRIPTS_DIALOG_H__ */
|
|
@ -0,0 +1,867 @@
|
||||||
|
#include <glib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <ruby.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs-mime-utils.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
#include "gm-app.h"
|
||||||
|
#include "gm-scripts.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
|
||||||
|
#define GM_SCRIPTS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), \
|
||||||
|
GM_TYPE_SCRIPTS, GmScriptsPrivate))
|
||||||
|
#define RB_CALLBACK(x) (VALUE (*)())(x)
|
||||||
|
#define GM_SCRIPTS_GLOBAL PACKAGE_DATA_DIR "/" PACKAGE "/scripts"
|
||||||
|
|
||||||
|
static VALUE rb_world_class, rb_client_class, rb_scripts_class;
|
||||||
|
|
||||||
|
VALUE script_world_name(VALUE self);
|
||||||
|
VALUE gm_scripts_rb_world_new(GmWorld *world);
|
||||||
|
VALUE gm_scripts_rb_scripts_new(GmScripts *scripts);
|
||||||
|
|
||||||
|
void gm_scripts_rb_world_class_init();
|
||||||
|
void gm_scripts_rb_client_class_init();
|
||||||
|
void gm_scripts_rb_scripts_class_init();
|
||||||
|
|
||||||
|
void gm_scripts_unload(GmScripts *scripts);
|
||||||
|
void gm_scripts_rb_init();
|
||||||
|
|
||||||
|
struct _GmScriptsPrivate {
|
||||||
|
GList *files;
|
||||||
|
GmScript *loading;
|
||||||
|
GList *monitors;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SCRIPT_ADDED,
|
||||||
|
SCRIPT_CHANGED,
|
||||||
|
SCRIPT_REMOVED,
|
||||||
|
RELOAD,
|
||||||
|
MESSAGE,
|
||||||
|
ERROR,
|
||||||
|
RUN,
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint gm_scripts_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmScripts, gm_scripts, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_scripts_finalize(GObject *object) {
|
||||||
|
GmScripts *scripts = GM_SCRIPTS(object);
|
||||||
|
GList *monitors;
|
||||||
|
|
||||||
|
gm_scripts_unload(scripts);
|
||||||
|
|
||||||
|
for (monitors = scripts->priv->monitors; monitors;
|
||||||
|
monitors = monitors->next) {
|
||||||
|
gnome_vfs_monitor_cancel((GnomeVFSMonitorHandle *)(monitors->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(scripts->priv->monitors);
|
||||||
|
scripts->priv->monitors = NULL;
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_scripts_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_scripts_class_init(GmScriptsClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_scripts_finalize;
|
||||||
|
|
||||||
|
gm_scripts_signals[SCRIPT_ADDED] =
|
||||||
|
g_signal_new("script_added",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, script_added),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__POINTER,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
gm_scripts_signals[SCRIPT_CHANGED] =
|
||||||
|
g_signal_new("script_changed",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, script_changed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__POINTER,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
gm_scripts_signals[SCRIPT_REMOVED] =
|
||||||
|
g_signal_new("script_removed",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, script_removed),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__POINTER,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_POINTER);
|
||||||
|
gm_scripts_signals[RELOAD] =
|
||||||
|
g_signal_new("reload",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, reload),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__VOID,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
0);
|
||||||
|
gm_scripts_signals[MESSAGE] =
|
||||||
|
g_signal_new("message",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, message),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__STRING,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_STRING);
|
||||||
|
gm_scripts_signals[ERROR] =
|
||||||
|
g_signal_new("error",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, error),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__STRING,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_STRING);
|
||||||
|
gm_scripts_signals[RUN] =
|
||||||
|
g_signal_new("run",
|
||||||
|
G_OBJECT_CLASS_TYPE(object_class),
|
||||||
|
G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET(GmScriptsClass, run),
|
||||||
|
NULL, NULL,
|
||||||
|
g_cclosure_marshal_VOID__STRING,
|
||||||
|
G_TYPE_NONE,
|
||||||
|
1,
|
||||||
|
G_TYPE_STRING);
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmScriptsPrivate));
|
||||||
|
|
||||||
|
gm_scripts_rb_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_rb_init(GmScriptsClass *klass) {
|
||||||
|
ruby_init();
|
||||||
|
|
||||||
|
gm_scripts_rb_world_class_init();
|
||||||
|
gm_scripts_rb_client_class_init();
|
||||||
|
gm_scripts_rb_scripts_class_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_scripts_init(GmScripts *scripts) {
|
||||||
|
scripts->priv = GM_SCRIPTS_GET_PRIVATE(scripts);
|
||||||
|
|
||||||
|
scripts->priv->monitors = NULL;
|
||||||
|
scripts->priv->files = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmScripts *
|
||||||
|
gm_scripts_new() {
|
||||||
|
GmScripts *scripts = GM_SCRIPTS(g_object_new(GM_TYPE_SCRIPTS, NULL));
|
||||||
|
|
||||||
|
return scripts;
|
||||||
|
}
|
||||||
|
|
||||||
|
void gm_scripts_monitor_cb (GnomeVFSMonitorHandle *handle,
|
||||||
|
const gchar *monitor_uri, const gchar *info_uri,
|
||||||
|
GnomeVFSMonitorEventType event_type,
|
||||||
|
GmScripts *scripts) {
|
||||||
|
gchar *filename = gnome_vfs_get_local_path_from_uri(info_uri);
|
||||||
|
|
||||||
|
switch (event_type) {
|
||||||
|
case GNOME_VFS_MONITOR_EVENT_CHANGED:
|
||||||
|
gm_scripts_reload_file(scripts, filename);
|
||||||
|
break;
|
||||||
|
case GNOME_VFS_MONITOR_EVENT_DELETED:
|
||||||
|
gm_scripts_remove_file(scripts, filename);
|
||||||
|
break;
|
||||||
|
case GNOME_VFS_MONITOR_EVENT_CREATED:
|
||||||
|
gm_scripts_add_file(scripts, filename);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_script_function_destroy(GmScriptFunction *fi) {
|
||||||
|
g_free(fi->name);
|
||||||
|
g_free(fi->fname);
|
||||||
|
g_free(fi->description);
|
||||||
|
g_free(fi);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_script_destroy_functions(GmScript *script) {
|
||||||
|
GList *functions;
|
||||||
|
|
||||||
|
for (functions = script->functions; functions;
|
||||||
|
functions = functions->next) {
|
||||||
|
gm_script_function_destroy((GmScriptFunction *)(functions->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(script->functions);
|
||||||
|
script->functions = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_script_destroy(GmScript *script) {
|
||||||
|
gm_script_destroy_functions(script);
|
||||||
|
g_free(script->filename);
|
||||||
|
g_free(script);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_unload(GmScripts *scripts) {
|
||||||
|
GList *files;
|
||||||
|
|
||||||
|
for (files = scripts->priv->files; files; files = files->next) {
|
||||||
|
gm_script_destroy((GmScript *)(files->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(scripts->priv->files);
|
||||||
|
scripts->priv->files = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmScriptFunction *
|
||||||
|
gm_scripts_find(GmScripts *scripts, gchar *name) {
|
||||||
|
GList *files;
|
||||||
|
GList *functions;
|
||||||
|
GmScriptFunction *func;
|
||||||
|
GmScript *script;
|
||||||
|
|
||||||
|
for (files = scripts->priv->files; files; files = files->next) {
|
||||||
|
script = (GmScript *)(files->data);
|
||||||
|
for (functions = script->functions; functions;
|
||||||
|
functions = functions->next) {
|
||||||
|
func = (GmScriptFunction *)(functions->data);
|
||||||
|
|
||||||
|
if (strcasecmp(func->name, name) == 0) {
|
||||||
|
return func;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_add(GmScripts *scripts, gchar *name, gchar *fname,
|
||||||
|
gchar *description) {
|
||||||
|
GmScriptFunction *func;
|
||||||
|
|
||||||
|
if (gm_scripts_find(scripts, name) == NULL) {
|
||||||
|
func = g_new(GmScriptFunction, 1);
|
||||||
|
func->script = scripts->priv->loading;
|
||||||
|
func->name = g_strdup(name);
|
||||||
|
func->fname = g_strdup(fname);;
|
||||||
|
func->description = g_strdup(description);
|
||||||
|
|
||||||
|
scripts->priv->loading->functions =
|
||||||
|
g_list_append(scripts->priv->loading->functions, func);
|
||||||
|
return TRUE;
|
||||||
|
} else {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
gm_scripts_rb_register_functions_wrap(VALUE arg) {
|
||||||
|
return rb_eval_string("register_functions");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_rb_script_define_world(VALUE *world) {
|
||||||
|
rb_define_variable("$world", world);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_rb_error(GmScripts *scripts) {
|
||||||
|
int c;
|
||||||
|
VALUE lasterr;
|
||||||
|
char *err;
|
||||||
|
gchar *msg;
|
||||||
|
VALUE ary;
|
||||||
|
|
||||||
|
if(!NIL_P(ruby_errinfo)) {
|
||||||
|
lasterr = rb_gv_get("$!");
|
||||||
|
err = RSTRING(rb_obj_as_string(lasterr))->ptr;
|
||||||
|
|
||||||
|
debug_msg(1, "GmScripts.Error: Error while executing Ruby code: %s",
|
||||||
|
err);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("Error in execution: %s"), err);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[MESSAGE], 0, msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
ary = rb_funcall(ruby_errinfo, rb_intern("backtrace"), 0);
|
||||||
|
debug_msg(1, "GmScripts.Error: Ruby backtrace:");
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[ERROR], 0,
|
||||||
|
_("Ruby backtrace:"));
|
||||||
|
|
||||||
|
for (c = 0; c < RARRAY(ary)->len; c++) {
|
||||||
|
debug_msg(1, "GmScripts.Error: \tfrom %s",
|
||||||
|
RSTRING(RARRAY(ary)->ptr[c])->ptr);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("\tfrom %s"),
|
||||||
|
RSTRING(RARRAY(ary)->ptr[c])->ptr);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[ERROR], 0, msg);
|
||||||
|
g_free(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
gm_scripts_rb_do(GmScripts *scripts, VALUE (*body)(), VALUE arg) {
|
||||||
|
int status;
|
||||||
|
|
||||||
|
rb_protect(body, arg, &status);
|
||||||
|
|
||||||
|
if (status != 0) {
|
||||||
|
gm_scripts_rb_error(scripts);
|
||||||
|
ruby_cleanup(status);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
gm_scripts_run_function(GmScriptInfo *arg) {
|
||||||
|
VALUE ret;
|
||||||
|
gchar *argstr;
|
||||||
|
gchar *funcAll;
|
||||||
|
|
||||||
|
if (arg->argstr) {
|
||||||
|
argstr = gm_str_escape(arg->argstr);
|
||||||
|
funcAll = g_strconcat(arg->name, "(\"", argstr, "\")", NULL);
|
||||||
|
g_free(argstr);
|
||||||
|
} else {
|
||||||
|
funcAll = g_strconcat(arg->name, "()", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = rb_eval_string(funcAll);
|
||||||
|
g_free(funcAll);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_run(GmScripts *scripts, GmWorld *world, gchar *name, gchar *argstr) {
|
||||||
|
VALUE rbWorld, rbClient;
|
||||||
|
gchar *msg;
|
||||||
|
GmScriptInfo *info;
|
||||||
|
GmScriptFunction *f = gm_scripts_find(scripts, name);
|
||||||
|
|
||||||
|
if (!f) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
info = g_new0(GmScriptInfo, 1);
|
||||||
|
info->name = g_strdup(f->fname);
|
||||||
|
|
||||||
|
if (argstr) {
|
||||||
|
info->argstr = g_strdup(argstr);
|
||||||
|
msg = g_strdup_printf(_("Run script '%s' from '%s' (%s)"), f->fname,
|
||||||
|
f->script->filename, argstr);
|
||||||
|
} else {
|
||||||
|
info->argstr = NULL;
|
||||||
|
msg = g_strdup_printf(_("Run script '%s' from '%s' ()"), f->fname,
|
||||||
|
f->script->filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[RUN], 0, msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
gm_scripts_rb_do(scripts, RB_CALLBACK(rb_load_file),
|
||||||
|
(VALUE)(f->script->filename));
|
||||||
|
ruby_exec();
|
||||||
|
|
||||||
|
rbWorld = gm_scripts_rb_world_new(world);
|
||||||
|
rb_define_variable("$world", &rbWorld);
|
||||||
|
|
||||||
|
rbClient = rb_class_new_instance(0, NULL, rb_client_class);
|
||||||
|
rb_define_variable("$client", &rbClient);
|
||||||
|
|
||||||
|
gm_scripts_rb_do(scripts, RB_CALLBACK(gm_scripts_run_function),
|
||||||
|
(VALUE)info);
|
||||||
|
|
||||||
|
g_free(info->name);
|
||||||
|
g_free(info->argstr);
|
||||||
|
g_free(info);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
gm_scripts_register_func_old(int argc, VALUE *argv) {
|
||||||
|
debug_msg(1, "GmScripts.RegisterFunc: This is the deprecated way to "
|
||||||
|
"register functions is does no longer work. Use $scripts.register "
|
||||||
|
"instead.");
|
||||||
|
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_register_functions(GmScripts *scripts) {
|
||||||
|
gchar *msg;
|
||||||
|
VALUE rbScripts;
|
||||||
|
|
||||||
|
debug_msg(1, "GmScripts.RegisterFunctions: registering functions in %s",
|
||||||
|
scripts->priv->loading->filename);
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("Registering functions from '%s'"),
|
||||||
|
scripts->priv->loading->filename);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[MESSAGE], 0, msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
if (!gm_scripts_rb_do(scripts, RB_CALLBACK(rb_load_file),
|
||||||
|
(VALUE) scripts->priv->loading->filename)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ruby_exec();
|
||||||
|
|
||||||
|
rbScripts = gm_scripts_rb_scripts_new(scripts);
|
||||||
|
rb_define_variable("$scripts", &rbScripts);
|
||||||
|
rb_define_global_function("register_func", &gm_scripts_register_func_old,
|
||||||
|
-1);
|
||||||
|
|
||||||
|
gm_scripts_rb_do(scripts,
|
||||||
|
RB_CALLBACK(gm_scripts_rb_register_functions_wrap), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_remove_file(GmScripts *scripts, const gchar *uri) {
|
||||||
|
GList *f, *l;
|
||||||
|
GmScript *script;
|
||||||
|
|
||||||
|
l = g_list_copy(scripts->priv->files);
|
||||||
|
|
||||||
|
for (f = l; f; f = f->next) {
|
||||||
|
script = (GmScript *)(f->data);
|
||||||
|
|
||||||
|
if (strcmp(script->filename, uri) == 0) {
|
||||||
|
scripts->priv->files = g_list_remove(scripts->priv->files, script);
|
||||||
|
|
||||||
|
debug_msg(1, "GmScripts.RemoveFile: Removing scripts from `%s'",
|
||||||
|
script->filename);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[SCRIPT_REMOVED], 0,
|
||||||
|
script);
|
||||||
|
|
||||||
|
gm_script_destroy(script);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_scripts_add_file(GmScripts *scripts, const gchar *uri) {
|
||||||
|
GList *f;
|
||||||
|
GmScript *script;
|
||||||
|
gchar *msg;
|
||||||
|
|
||||||
|
for (f = scripts->priv->files; f; f = f->next) {
|
||||||
|
script = (GmScript *)(f->data);
|
||||||
|
|
||||||
|
if (strcmp(script->filename, uri) == 0) {
|
||||||
|
msg = g_strdup_printf(_("File `%s' already loaded"), uri);
|
||||||
|
|
||||||
|
debug_msg(1, "GmScripts.AddFile: %s", msg);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[ERROR], 0, msg);
|
||||||
|
|
||||||
|
g_free(msg);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = g_strdup_printf(_("File `%s' added"), uri);
|
||||||
|
debug_msg(1, "GmScripts.AddFile: %s", msg);
|
||||||
|
g_free(msg);
|
||||||
|
|
||||||
|
script = g_new0(GmScript, 1);
|
||||||
|
script->filename = g_strdup(uri);
|
||||||
|
|
||||||
|
if (strncmp(uri, GM_SCRIPTS_GLOBAL,
|
||||||
|
strlen(GM_SCRIPTS_GLOBAL)) == 0) {
|
||||||
|
script->type = GM_SCRIPT_TYPE_SHARE;
|
||||||
|
} else {
|
||||||
|
script->type = GM_SCRIPT_TYPE_USER;
|
||||||
|
}
|
||||||
|
|
||||||
|
scripts->priv->files = g_list_append(scripts->priv->files, script);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[SCRIPT_ADDED], 0, script);
|
||||||
|
|
||||||
|
scripts->priv->loading = script;
|
||||||
|
|
||||||
|
gm_scripts_register_functions(scripts);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_reload_file(GmScripts *scripts, const gchar *uri) {
|
||||||
|
GList *files;
|
||||||
|
GmScript *script;
|
||||||
|
|
||||||
|
for (files = scripts->priv->files; files; files = files->next) {
|
||||||
|
script = (GmScript *)(files->data);
|
||||||
|
|
||||||
|
if (strcmp(script->filename, uri) == 0) {
|
||||||
|
// Remove all functions and reregister the file
|
||||||
|
scripts->priv->loading = script;
|
||||||
|
|
||||||
|
gm_script_destroy_functions(script);
|
||||||
|
gm_scripts_register_functions(scripts);
|
||||||
|
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[SCRIPT_CHANGED], 0,
|
||||||
|
script);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the script does not yet exist, add it
|
||||||
|
gm_scripts_add_file(scripts, uri);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_load_dir(GmScripts *scripts, gchar *dirname) {
|
||||||
|
gchar *filename;
|
||||||
|
gchar *file;
|
||||||
|
GDir *d;
|
||||||
|
GnomeVFSMonitorHandle *handle;
|
||||||
|
|
||||||
|
if (g_file_test(dirname, G_FILE_TEST_EXISTS) &&
|
||||||
|
g_file_test(dirname, G_FILE_TEST_IS_DIR)) {
|
||||||
|
|
||||||
|
if ((d = g_dir_open(dirname, 0, NULL))) {
|
||||||
|
while ((file = (gchar *)g_dir_read_name(d))) {
|
||||||
|
filename = g_strconcat(dirname, "/", file, NULL);
|
||||||
|
gm_scripts_add_file(scripts, filename);
|
||||||
|
g_free(filename);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gnome_vfs_monitor_add(&handle, dirname, GNOME_VFS_MONITOR_DIRECTORY,
|
||||||
|
(GnomeVFSMonitorCallback)gm_scripts_monitor_cb, scripts);
|
||||||
|
scripts->priv->monitors = g_list_append(scripts->priv->monitors,
|
||||||
|
handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_load(GmScripts *scripts) {
|
||||||
|
gchar *path;
|
||||||
|
|
||||||
|
if (scripts->priv->files) {
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[RELOAD], 0);
|
||||||
|
gm_scripts_unload(scripts);
|
||||||
|
}
|
||||||
|
|
||||||
|
path = g_strconcat(gm_app_path(gm_app_instance()), "/scripts", NULL);
|
||||||
|
|
||||||
|
gm_scripts_load_dir(scripts, path);
|
||||||
|
gm_scripts_load_dir(scripts, GM_SCRIPTS_GLOBAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *
|
||||||
|
gm_scripts_scripts(GmScripts *scripts) {
|
||||||
|
return scripts->priv->files;
|
||||||
|
}
|
||||||
|
// Ruby class functions
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
gm_scripts_rb_world_new(GmWorld *world) {
|
||||||
|
VALUE tdata = Data_Wrap_Struct(rb_world_class, 0, 0, world);
|
||||||
|
|
||||||
|
return tdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
gm_scripts_rb_scripts_new(GmScripts *scripts) {
|
||||||
|
VALUE tdata = Data_Wrap_Struct(rb_scripts_class, 0, 0, scripts);
|
||||||
|
|
||||||
|
return tdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ruby world class functions
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_name(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
return rb_str_new2(gm_options_get(gm_world_options(world), "name"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_host(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
return rb_str_new2(gm_options_get(gm_world_options(world), "host"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_port(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
return rb_str_new2(gm_options_get(gm_world_options(world), "port"));
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_writeln(VALUE self, VALUE str) {
|
||||||
|
GmWorld *world;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
gm_world_writeln(world, strVal);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_sendln(VALUE self, VALUE str) {
|
||||||
|
GmWorld *world;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
gm_world_sendln(world, strVal);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_input(VALUE self, VALUE str) {
|
||||||
|
GmWorld *world;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
gm_world_process_input(world, strVal);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_loaded(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
if (gm_world_loaded(world)) {
|
||||||
|
return Qtrue;
|
||||||
|
} else {
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_connected(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
if (gm_world_state(world) == GM_NET_STATE_CONNECTED) {
|
||||||
|
return Qtrue;
|
||||||
|
} else {
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_quit(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
gm_world_unload(world);
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_connect(int argc, VALUE *argv, VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
const gchar *strHost, *strPort;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
if (argc == 0) {
|
||||||
|
strHost = gm_options_get(gm_world_options(world), "host");
|
||||||
|
} else {
|
||||||
|
strHost = rb_string_value_cstr(&(argv[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc == 0 || argc == 1) {
|
||||||
|
strPort = gm_options_get(gm_world_options(world), "port");
|
||||||
|
} else {
|
||||||
|
strPort = rb_string_value_cstr(&(argv[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_world_connect_to(world, (gchar *)strHost, (gchar *)strPort);
|
||||||
|
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_world_disconnect(VALUE self) {
|
||||||
|
GmWorld *world;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmWorld, world);
|
||||||
|
|
||||||
|
gm_world_disconnect(world);
|
||||||
|
return Qnil;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ruby client class functions
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_client_version(VALUE self) {
|
||||||
|
return rb_str_new2(VERSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_client_worlds(VALUE self) {
|
||||||
|
GList *world;
|
||||||
|
VALUE rb_array = rb_ary_new();
|
||||||
|
VALUE rb_world;
|
||||||
|
|
||||||
|
for (world = gm_app_worlds(gm_app_instance()); world; world = world->next) {
|
||||||
|
rb_world = gm_scripts_rb_world_new((GmWorld *)(world->data));
|
||||||
|
rb_ary_push(rb_array, rb_world);
|
||||||
|
}
|
||||||
|
|
||||||
|
return rb_array;
|
||||||
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
gm_scripts_rb_client_open(VALUE self, VALUE str) {
|
||||||
|
GmWorld *world;
|
||||||
|
gchar *strVal;
|
||||||
|
|
||||||
|
strVal = rb_string_value_cstr(&str);
|
||||||
|
|
||||||
|
world = gm_app_world_by_name(gm_app_instance(), strVal);
|
||||||
|
|
||||||
|
if (world == NULL) {
|
||||||
|
return Qfalse;
|
||||||
|
} else {
|
||||||
|
gm_world_load(world);
|
||||||
|
return Qtrue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ruby scripts class functions
|
||||||
|
VALUE
|
||||||
|
gm_scripts_rb_scripts_register(int argc, VALUE *argv, VALUE self) {
|
||||||
|
char *name, *fname = NULL, *description = NULL;
|
||||||
|
gchar *msg;
|
||||||
|
GmScripts *scripts;
|
||||||
|
|
||||||
|
Data_Get_Struct(self, GmScripts, scripts);
|
||||||
|
|
||||||
|
if (argc > 1) {
|
||||||
|
name = rb_string_value_cstr(&argv[0]);
|
||||||
|
description = rb_string_value_cstr(&argv[1]);
|
||||||
|
|
||||||
|
if (argc == 2) {
|
||||||
|
fname = name;
|
||||||
|
} else {
|
||||||
|
fname = rb_string_value_cstr(&argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gm_scripts_add(scripts, name, fname, description)) {
|
||||||
|
msg = g_strdup_printf(_("Register function '%s' from '%s'"), name,
|
||||||
|
scripts->priv->loading->filename);
|
||||||
|
debug_msg(1, "GmScripts.RbScriptsRegister: Adding script function "
|
||||||
|
"%s from %s", name, scripts->priv->loading->filename);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[MESSAGE], 0, msg);
|
||||||
|
g_free(msg);
|
||||||
|
return Qtrue;
|
||||||
|
} else {
|
||||||
|
msg = g_strdup_printf(_("Script '%s' is already defined"), name);
|
||||||
|
debug_msg(1, "GmScripts.RbScriptsRegister: Script function %s "
|
||||||
|
"already defined!", name);
|
||||||
|
g_signal_emit(scripts, gm_scripts_signals[ERROR], 0, msg);
|
||||||
|
g_free(msg);
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return Qfalse;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ruby class initializations
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_rb_world_class_init() {
|
||||||
|
rb_world_class = rb_define_class("World", rb_cObject);
|
||||||
|
|
||||||
|
rb_define_method(rb_world_class, "name", gm_scripts_rb_world_name, 0);
|
||||||
|
rb_define_method(rb_world_class, "host", gm_scripts_rb_world_host, 0);
|
||||||
|
rb_define_method(rb_world_class, "port", gm_scripts_rb_world_port, 0);
|
||||||
|
|
||||||
|
rb_define_method(rb_world_class, "writeln", gm_scripts_rb_world_writeln, 1);
|
||||||
|
rb_define_method(rb_world_class, "println", gm_scripts_rb_world_writeln, 1);
|
||||||
|
rb_define_method(rb_world_class, "sendln", gm_scripts_rb_world_sendln, 1);
|
||||||
|
rb_define_method(rb_world_class, "input", gm_scripts_rb_world_input, 1);
|
||||||
|
rb_define_method(rb_world_class, "quit", gm_scripts_rb_world_quit, 0);
|
||||||
|
rb_define_method(rb_world_class, "connect",
|
||||||
|
gm_scripts_rb_world_connect, -1);
|
||||||
|
rb_define_method(rb_world_class, "disconnect",
|
||||||
|
gm_scripts_rb_world_disconnect, 0);
|
||||||
|
rb_define_method(rb_world_class, "loaded?", gm_scripts_rb_world_loaded, 0);
|
||||||
|
rb_define_method(rb_world_class, "connected?",
|
||||||
|
gm_scripts_rb_world_connected, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_rb_client_class_init() {
|
||||||
|
rb_client_class = rb_define_class("Client", rb_cObject);
|
||||||
|
|
||||||
|
rb_define_method(rb_client_class, "version",
|
||||||
|
gm_scripts_rb_client_version, 0);
|
||||||
|
rb_define_method(rb_client_class, "worlds",
|
||||||
|
gm_scripts_rb_client_worlds, 0);
|
||||||
|
rb_define_method(rb_client_class, "open", gm_scripts_rb_client_open, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scripts_rb_scripts_class_init() {
|
||||||
|
rb_scripts_class = rb_define_class("Scripts", rb_cObject);
|
||||||
|
|
||||||
|
rb_define_method(rb_scripts_class, "register",
|
||||||
|
gm_scripts_rb_scripts_register, -1);
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
#ifndef __GM_SCRIPTS_H__
|
||||||
|
#define __GM_SCRIPTS_H__
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
#include <glib.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
|
||||||
|
#include "gm-world.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_SCRIPTS (gm_scripts_get_type())
|
||||||
|
#define GM_SCRIPTS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_SCRIPTS, GmScripts))
|
||||||
|
#define GM_SCRIPTS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
|
||||||
|
GM_TYPE_SCRIPTS, GmScripts const))
|
||||||
|
#define GM_SCRIPTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
|
||||||
|
GM_TYPE_SCRIPTS, GmScriptsClass))
|
||||||
|
#define GM_IS_SCRIPTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
|
||||||
|
GM_TYPE_SCRIPTS))
|
||||||
|
#define GM_IS_SCRIPTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||||
|
GM_TYPE_SCRIPTS))
|
||||||
|
#define GM_SCRIPTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
|
||||||
|
GM_TYPE_SCRIPTS, GmScriptsClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmScriptsPrivate GmScriptsPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmScripts GmScripts;
|
||||||
|
|
||||||
|
struct _GmScripts {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmScriptsPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _GmScriptType {
|
||||||
|
GM_SCRIPT_TYPE_USER,
|
||||||
|
GM_SCRIPT_TYPE_SHARE
|
||||||
|
} GmScriptType;
|
||||||
|
|
||||||
|
typedef struct _GmScript {
|
||||||
|
gchar *filename;
|
||||||
|
GmScriptType type;
|
||||||
|
GList *functions;
|
||||||
|
} GmScript;
|
||||||
|
|
||||||
|
typedef struct _GmScriptFunction {
|
||||||
|
GmScript *script;
|
||||||
|
gchar *name;
|
||||||
|
gchar *fname;
|
||||||
|
gchar *description;
|
||||||
|
} GmScriptFunction;
|
||||||
|
|
||||||
|
typedef struct _GmScriptInfo {
|
||||||
|
gchar *name;
|
||||||
|
gchar *argstr;
|
||||||
|
} GmScriptInfo;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmScriptsClass GmScriptsClass;
|
||||||
|
|
||||||
|
struct _GmScriptsClass {
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
void (* script_added) (GmScripts *scripts, GmScript *script);
|
||||||
|
void (* script_changed) (GmScripts *scripts, GmScript *script);
|
||||||
|
void (* script_removed) (GmScripts *scripts, GmScript *script);
|
||||||
|
void (* reload) (GmScripts *scripts);
|
||||||
|
void (* message) (GmScripts *scripts, gchar *message);
|
||||||
|
void (* error) (GmScripts *scripts, gchar *message);
|
||||||
|
void (* run) (GmScripts *scripts, gchar *message);
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_scripts_get_type(void) G_GNUC_CONST;
|
||||||
|
GmScripts *gm_scripts_new();
|
||||||
|
|
||||||
|
//void gm_script_init();
|
||||||
|
//void gm_script_fini();
|
||||||
|
|
||||||
|
void gm_scripts_reload_file(GmScripts *scripts, const gchar *uri);
|
||||||
|
gboolean gm_scripts_add_file(GmScripts *scripts, const gchar *uri);
|
||||||
|
void gm_scripts_remove_file(GmScripts *scripts, const gchar *uri);
|
||||||
|
|
||||||
|
GmScriptFunction *gm_scripts_find(GmScripts *scripts, gchar *name);
|
||||||
|
GList *gm_scripts_scripts(GmScripts *scripts);
|
||||||
|
|
||||||
|
gboolean gm_scripts_run(GmScripts *scripts, GmWorld *world, gchar *name,
|
||||||
|
gchar *argstr);
|
||||||
|
void gm_scripts_load(GmScripts *scripts);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* HAVE_RUBY */
|
||||||
|
#endif /* __GM_SCRIPTS_H__ */
|
|
@ -0,0 +1,203 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
#include "gm-string.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
void
|
||||||
|
stringlist_add(stringlist * strl, char *data) {
|
||||||
|
stringlist_item *newStringlistItem =
|
||||||
|
(stringlist_item *) malloc(sizeof(stringlist_item));
|
||||||
|
newStringlistItem->data = strdup(data);
|
||||||
|
|
||||||
|
if (strl->firstItem == NULL) {
|
||||||
|
strl->firstItem = newStringlistItem;
|
||||||
|
} else {
|
||||||
|
newStringlistItem->prev = strl->lastItem;
|
||||||
|
|
||||||
|
if (strl->lastItem != NULL)
|
||||||
|
strl->lastItem->next = newStringlistItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
strl->lastItem = newStringlistItem;
|
||||||
|
newStringlistItem->next = NULL;
|
||||||
|
|
||||||
|
strl->count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
stringlist_remove(stringlist * strl, stringlist_item * removed) {
|
||||||
|
if (removed == strl->firstItem) {
|
||||||
|
strl->firstItem = removed->next;
|
||||||
|
} else {
|
||||||
|
removed->prev->next = removed->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (removed == strl->lastItem) {
|
||||||
|
strl->lastItem = removed->prev;
|
||||||
|
} else {
|
||||||
|
removed->next->prev = removed->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(removed->data);
|
||||||
|
free(removed);
|
||||||
|
strl->count--;
|
||||||
|
}
|
||||||
|
|
||||||
|
stringlist *
|
||||||
|
stringlist_create(char *argstr, char *delim) {
|
||||||
|
stringlist *newStringlist = (stringlist *) malloc(sizeof(stringlist));
|
||||||
|
char *data, *work, *working, *strPos;
|
||||||
|
|
||||||
|
newStringlist->firstItem = NULL;
|
||||||
|
newStringlist->lastItem = NULL;
|
||||||
|
newStringlist->count = 0;
|
||||||
|
|
||||||
|
if (delim == NULL) {
|
||||||
|
stringlist_add(newStringlist, argstr);
|
||||||
|
return newStringlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
working = strdup(argstr);
|
||||||
|
working = mystring_cat(working, delim);
|
||||||
|
work = working;
|
||||||
|
|
||||||
|
while (strlen(work) != 0) {
|
||||||
|
|
||||||
|
if ((strPos = strstr(work, delim)) != NULL && strPos > work) {
|
||||||
|
data = NULL;
|
||||||
|
data = mystring_catn(data, work, (strPos - work));
|
||||||
|
stringlist_add(newStringlist, data);
|
||||||
|
free(data);
|
||||||
|
}
|
||||||
|
work = strPos + strlen(delim);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
free(working);
|
||||||
|
return newStringlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
stringlist_destroy(stringlist * strl) {
|
||||||
|
stringlist_item *curItem = strl->firstItem;
|
||||||
|
|
||||||
|
while (curItem != NULL) {
|
||||||
|
stringlist_remove(strl, curItem);
|
||||||
|
curItem = strl->firstItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(strl);
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
stringlist_glue_it(stringlist * strl, char *glue) {
|
||||||
|
char *result = NULL;
|
||||||
|
stringlist_item *curItem = strl->firstItem;
|
||||||
|
|
||||||
|
while (curItem != NULL) {
|
||||||
|
if (curItem != strl->firstItem) {
|
||||||
|
result = mystring_cat(result, glue);
|
||||||
|
result = mystring_cat(result, curItem->data);
|
||||||
|
} else {
|
||||||
|
result = strdup(curItem->data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
gm_string_to_int(const gchar *str, int *result) {
|
||||||
|
*result = 0;
|
||||||
|
|
||||||
|
if (str == NULL || *str == '\0') {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*result = atoi(str);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_string_catn(gchar *str, gchar *add, guint n) {
|
||||||
|
guint relen;
|
||||||
|
gchar *newstr;
|
||||||
|
|
||||||
|
if (str == NULL) {
|
||||||
|
relen = 0;
|
||||||
|
} else {
|
||||||
|
relen = strlen(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((newstr = (gchar *) realloc(str, (relen + n + 1) * sizeof(gchar))) == NULL) {
|
||||||
|
debug_msg(1, "mystring_catn: REALLOC FAILED!");
|
||||||
|
return str;
|
||||||
|
} else {
|
||||||
|
if (relen == 0) {
|
||||||
|
newstr[0] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
strncat(newstr, add, n);
|
||||||
|
return newstr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_string_cat(gchar *str, gchar *add) {
|
||||||
|
return gm_string_catn(str, add, strlen(add));
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_string_trim(const gchar *str) {
|
||||||
|
gchar *newstr = NULL;
|
||||||
|
const gchar *r, *l;
|
||||||
|
|
||||||
|
if (str == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
r = str + strlen(str);
|
||||||
|
l = str;
|
||||||
|
|
||||||
|
while (*l == ' ' || *r == ' ') {
|
||||||
|
if (l == r) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*l == ' ') {
|
||||||
|
l++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (l == r) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*r == ' ') {
|
||||||
|
r--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (l == r) {
|
||||||
|
return g_strdup("");
|
||||||
|
} else {
|
||||||
|
newstr = g_strndup(l, r - l);
|
||||||
|
return newstr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_string_remove_char(char *str, char rem) {
|
||||||
|
int i, j = 0;
|
||||||
|
|
||||||
|
for (i = 0; str[i] != '\0'; i++) {
|
||||||
|
if (str[i] != rem) {
|
||||||
|
str[j] = str[i];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
str[j] = '\0';
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
#ifndef MY_STRING_H
|
||||||
|
#define MY_STRING_H 1
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/*typedef struct _stringlist_item stringlist_item;
|
||||||
|
struct _stringlist_item {
|
||||||
|
char *data;
|
||||||
|
|
||||||
|
stringlist_item *next;
|
||||||
|
stringlist_item *prev;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _stringlist stringlist;
|
||||||
|
struct _stringlist {
|
||||||
|
stringlist_item *firstItem;
|
||||||
|
stringlist_item *lastItem;
|
||||||
|
|
||||||
|
unsigned int count;
|
||||||
|
};
|
||||||
|
|
||||||
|
void stringlist_add(stringlist * strl, char *data);
|
||||||
|
void stringlist_remove(stringlist * strl, stringlist_item * removed);
|
||||||
|
stringlist *stringlist_create(char *argstr, char *delim);
|
||||||
|
void stringlist_destroy(stringlist * strl);
|
||||||
|
char *stringlist_glue_it(stringlist * strl, char *glue);
|
||||||
|
*/
|
||||||
|
|
||||||
|
int gm_string_to_int(const gchar *str, int *result);
|
||||||
|
char *gm_string_catn(char *str, char *add, unsigned int n);
|
||||||
|
char *gm_string_cat(char *str, char *add);
|
||||||
|
char *gm_string_trim(const gchar *str);
|
||||||
|
void gm_string_remove_char(char *str, char rem);
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,565 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <regex.h>
|
||||||
|
#include <libgnome/gnome-url.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "gm-support.h"
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-pixbuf.h"
|
||||||
|
//#include "if_main.h"
|
||||||
|
|
||||||
|
#define URL_REGEXP "(((mailto|news|telnet|nttp|file|http|sftp|ftp|https|dav|callto)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.@:]+[^]''\\.}>\\) ,\\/\\\"\\!]+(:[0-9]*)?(/|/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*[^]'\\.}>\\) ,\\\"\\!])?"
|
||||||
|
static regex_t url_regexp;
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_fix_decimal_point(gchar *line, int len) {
|
||||||
|
int i;
|
||||||
|
struct lconv *l = localeconv();
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
if (line[i] == '.') {
|
||||||
|
line[i] = l->decimal_point[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_fix_decimal_point_rev(gchar *line, int len) {
|
||||||
|
int i;
|
||||||
|
struct lconv *l = localeconv();
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
if (line[i] == l->decimal_point[0]) {
|
||||||
|
line[i] = '.';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_ansi_strip(gchar * s) {
|
||||||
|
int i, j = 0;
|
||||||
|
|
||||||
|
for (i = 0; s[i] != '\0'; i++) {
|
||||||
|
// Escape sequence, advance to character after 'm'
|
||||||
|
if (s[i] == '\x1B') {
|
||||||
|
while (s[i] != '\0' && s[i] != 'm') {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
} else if (s[i] != '\x07') {
|
||||||
|
s[j] = s[i];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
s[j] = '\0';
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
garray_length(gchar **s) {
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
while (s[i] != NULL) {
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
void g_list_free_simple(GList *s) {
|
||||||
|
GList *tmp;
|
||||||
|
|
||||||
|
for (tmp = s; tmp; tmp = tmp->next) {
|
||||||
|
g_free(tmp->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
g_list_find_simple(GList *s, gchar *f) {
|
||||||
|
GList *tmp;
|
||||||
|
|
||||||
|
for (tmp = s; tmp; tmp = tmp->next) {
|
||||||
|
if (strcmp(tmp->data, f) == 0) {
|
||||||
|
return tmp->data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_dialog(gchar * message, GtkMessageType messagebox_type,
|
||||||
|
GtkWindow * parent) {
|
||||||
|
GtkWidget *dlg;
|
||||||
|
|
||||||
|
if (parent == NULL) {
|
||||||
|
//parent = GTK_WINDOW(if_main_get_widget("wndMain"));
|
||||||
|
}
|
||||||
|
|
||||||
|
dlg =
|
||||||
|
gtk_message_dialog_new(parent,
|
||||||
|
GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||||
|
messagebox_type, GTK_BUTTONS_OK, message, NULL);
|
||||||
|
gtk_dialog_run(GTK_DIALOG(dlg));
|
||||||
|
gtk_widget_destroy(dlg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_error_dialog(gchar * message, GtkWindow * parent) {
|
||||||
|
gm_dialog(message, GTK_MESSAGE_ERROR, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_warning_dialog(gchar * message, GtkWindow * parent) {
|
||||||
|
gm_dialog(message, GTK_MESSAGE_WARNING, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_info_dialog(gchar * message, GtkWindow * parent) {
|
||||||
|
gm_dialog(message, GTK_MESSAGE_INFO, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_question_dialog(gchar * message, GtkWindow * parent) {
|
||||||
|
gm_dialog(message, GTK_MESSAGE_QUESTION, parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_do_events() {
|
||||||
|
while (gtk_events_pending()) {
|
||||||
|
gtk_main_iteration();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gchar *
|
||||||
|
gm_str_escape(gchar * line) {
|
||||||
|
gchar *newLine;
|
||||||
|
int i, j = 0;
|
||||||
|
|
||||||
|
if (strlen(line) == 0) {
|
||||||
|
return g_strdup("");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strstr(line, "\"") || strstr(line, "\\")) {
|
||||||
|
newLine = g_new(gchar, (strlen(line) * 2) + 1);
|
||||||
|
|
||||||
|
for (i = 0; i < (int)strlen(line); i++) {
|
||||||
|
if (line[i] == '"' || line[i] == '\\') {
|
||||||
|
newLine[j] = '\\';
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
newLine[j] = line[i];
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
newLine[j] = '\0';
|
||||||
|
return newLine;
|
||||||
|
} else {
|
||||||
|
return g_strdup(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_directory_remove_all(const gchar * path, gboolean remove_self) {
|
||||||
|
GDir *cDir;
|
||||||
|
gchar *name;
|
||||||
|
gchar *newPath;
|
||||||
|
|
||||||
|
if (g_file_test(path, G_FILE_TEST_IS_DIR)) {
|
||||||
|
// Iterate through the files and do the right thingie
|
||||||
|
if ((cDir = g_dir_open(path, 0, NULL))) {
|
||||||
|
while ((name = (gchar *) (g_dir_read_name(cDir))) != NULL) {
|
||||||
|
newPath = g_strconcat(path, "/", name, NULL);
|
||||||
|
gm_directory_remove_all(newPath, TRUE);
|
||||||
|
g_free(newPath);
|
||||||
|
}
|
||||||
|
g_dir_close(cDir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (remove_self) {
|
||||||
|
// Its a file, or just empty! MUST...BE...REMOVEEEED!
|
||||||
|
remove(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
gm_url_regex_match(const gchar *msg, int len, GArray *start, GArray *end) {
|
||||||
|
static gboolean inited = FALSE;
|
||||||
|
regmatch_t matches[1];
|
||||||
|
gint ret = 0, num_matches = 0, offset = 0;
|
||||||
|
gchar *tmp;
|
||||||
|
gint s;
|
||||||
|
|
||||||
|
if (!inited) {
|
||||||
|
memset (&url_regexp, 0, sizeof (regex_t));
|
||||||
|
regcomp (&url_regexp, URL_REGEXP, REG_EXTENDED);
|
||||||
|
inited = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = g_strndup(msg, len);
|
||||||
|
|
||||||
|
while (!ret) {
|
||||||
|
ret = regexec(&url_regexp, (char *)(tmp + offset), 1, matches, 0);
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
if (matches[0].rm_so > matches[0].rm_eo) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
num_matches++;
|
||||||
|
|
||||||
|
s = matches[0].rm_so + offset;
|
||||||
|
offset = matches[0].rm_eo + offset;
|
||||||
|
|
||||||
|
g_array_append_val(start, s);
|
||||||
|
g_array_append_val(end, offset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(tmp);
|
||||||
|
|
||||||
|
return num_matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_open_url (const gchar *url) {
|
||||||
|
if (!url || strlen (url) == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* gnome_url_show doesn't work when there's no protocol, so we might
|
||||||
|
* need to add one.
|
||||||
|
*/
|
||||||
|
if (strstr (url, "://") == NULL) {
|
||||||
|
gchar *tmp;
|
||||||
|
|
||||||
|
tmp = g_strconcat ("http://", url, NULL);
|
||||||
|
gnome_url_show(tmp, NULL);
|
||||||
|
g_free (tmp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gnome_url_show (url, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_fetch_handle_free(GmFetchHandle *g) {
|
||||||
|
GList *tmp;
|
||||||
|
|
||||||
|
g_free(g->cur_file_name);
|
||||||
|
|
||||||
|
for (tmp = g->source_uri; tmp; tmp = tmp->next) {
|
||||||
|
gnome_vfs_uri_unref((GnomeVFSURI*)(tmp->data));
|
||||||
|
}
|
||||||
|
g_list_free(g->source_uri);
|
||||||
|
|
||||||
|
|
||||||
|
for (tmp = g->dest_uri; tmp; tmp = tmp->next) {
|
||||||
|
gnome_vfs_uri_unref((GnomeVFSURI*)(tmp->data));
|
||||||
|
}
|
||||||
|
g_list_free(g->dest_uri);
|
||||||
|
|
||||||
|
g_free(g);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmFetchHandle *
|
||||||
|
gm_fetch_handle_create(GFunc cb, gpointer user_data) {
|
||||||
|
GmFetchHandle *g = g_new0(GmFetchHandle, 1);
|
||||||
|
|
||||||
|
g->cb = cb;
|
||||||
|
g->user_data = user_data;
|
||||||
|
g->prev_status = GNOME_VFS_XFER_PROGRESS_STATUS_OK;
|
||||||
|
g->cur_phase = -1;
|
||||||
|
g->prev_phase = -1;
|
||||||
|
g->cur_file = -1;
|
||||||
|
g->prev_file = -1;
|
||||||
|
g->source_uri = NULL;
|
||||||
|
g->dest_uri = NULL;
|
||||||
|
g->cur_file_name = NULL;
|
||||||
|
g->files_total = 0;
|
||||||
|
g->done = FALSE;
|
||||||
|
g->aborted = FALSE;
|
||||||
|
|
||||||
|
return g;
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
gm_fetch_progress(GnomeVFSAsyncHandle *handle,
|
||||||
|
GnomeVFSXferProgressInfo *info,
|
||||||
|
GmFetchHandle *g) {
|
||||||
|
gchar *name;
|
||||||
|
const gchar *err;
|
||||||
|
|
||||||
|
g->cur_phase = info->phase;
|
||||||
|
g->cur_file = info->file_index;
|
||||||
|
g->files_total = info->files_total;
|
||||||
|
g->bytes_total = info->bytes_total;
|
||||||
|
g->file_size = info->file_size;
|
||||||
|
g->bytes_copied = info->bytes_copied;
|
||||||
|
g->total_bytes_copied = info->total_bytes_copied;
|
||||||
|
g->status = info->status;
|
||||||
|
|
||||||
|
if (g->aborted) {
|
||||||
|
g->cb(g, g->user_data);
|
||||||
|
gm_fetch_handle_free(g);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->target_name != NULL) {
|
||||||
|
if (g->cur_file_name && strcmp(g->cur_file_name, info->target_name) != 0) {
|
||||||
|
g->cur_phase = GNOME_VFS_XFER_PHASE_FILECOMPLETED;
|
||||||
|
g->cb(g, g->user_data);
|
||||||
|
g->cur_phase = info->phase;
|
||||||
|
|
||||||
|
g_free(g->cur_file_name);
|
||||||
|
g->cur_file_name = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!g->cur_file_name) {
|
||||||
|
g->cur_file_name = g_strdup(info->target_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->status == GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE) {
|
||||||
|
name = gnome_vfs_get_local_path_from_uri(info->target_name);
|
||||||
|
debug_msg(1, "gnoemoe_fetch_progress: asking for overwriting %s: yes", name);
|
||||||
|
|
||||||
|
g->prev_status = GNOME_VFS_XFER_PROGRESS_STATUS_OVERWRITE;
|
||||||
|
return GNOME_VFS_XFER_OVERWRITE_ACTION_REPLACE;
|
||||||
|
} else if (info->status == GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR) {
|
||||||
|
name = gnome_vfs_get_local_path_from_uri(info->target_name);
|
||||||
|
err = gnome_vfs_result_to_string(info->vfs_status);
|
||||||
|
|
||||||
|
gdk_threads_enter();
|
||||||
|
debug_msg(1, "gnoemoe_fetch_progress: error for %s: %s", name, err);
|
||||||
|
g->cb(g, g->user_data);
|
||||||
|
gdk_threads_leave();
|
||||||
|
|
||||||
|
g_free(g->cur_file_name);
|
||||||
|
g->cur_file_name = NULL;
|
||||||
|
|
||||||
|
g->prev_status = GNOME_VFS_XFER_PROGRESS_STATUS_VFSERROR;
|
||||||
|
g_free(name);
|
||||||
|
|
||||||
|
return GNOME_VFS_XFER_ERROR_ACTION_SKIP;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info->phase == GNOME_VFS_XFER_PHASE_COMPLETED) {
|
||||||
|
if (g->cur_file_name != NULL) {
|
||||||
|
g->cur_phase = GNOME_VFS_XFER_PHASE_FILECOMPLETED;
|
||||||
|
g->cb(g, g->user_data);
|
||||||
|
g->cur_phase = info->phase;
|
||||||
|
}
|
||||||
|
|
||||||
|
g->done = TRUE;
|
||||||
|
g->cb(g, g->user_data);
|
||||||
|
gm_fetch_handle_free(g);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g->prev_status = info->status;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
gm_fetch_interact(GnomeVFSXferProgressInfo *info, gpointer user_data) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmFetchHandle *
|
||||||
|
gm_fetch(const GList *source, const GList *dest,
|
||||||
|
GFunc cb, gpointer user_data) {
|
||||||
|
GmFetchHandle *g = gm_fetch_handle_create(cb, user_data);
|
||||||
|
gchar *uri;
|
||||||
|
|
||||||
|
for (; source; source = source->next) {
|
||||||
|
uri = (gchar *)(source->data);
|
||||||
|
g->source_uri = g_list_append(g->source_uri, gnome_vfs_uri_new(uri));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; dest; dest = dest->next) {
|
||||||
|
uri = (gchar *)(dest->data);
|
||||||
|
g->dest_uri = g_list_append(g->dest_uri, gnome_vfs_uri_new(uri));
|
||||||
|
}
|
||||||
|
|
||||||
|
gnome_vfs_async_xfer(&(g->handle), g->source_uri, g->dest_uri,
|
||||||
|
GNOME_VFS_XFER_DEFAULT|GNOME_VFS_XFER_RECURSIVE,
|
||||||
|
GNOME_VFS_XFER_ERROR_MODE_QUERY,
|
||||||
|
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
|
||||||
|
GNOME_VFS_PRIORITY_DEFAULT,
|
||||||
|
(GnomeVFSAsyncXferProgressCallback)gm_fetch_progress,
|
||||||
|
g, gm_fetch_interact, g);
|
||||||
|
return g;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_is_end_scrolled(GtkScrolledWindow *wnd, guint charHeight) {
|
||||||
|
GtkAdjustment *ad = gtk_scrolled_window_get_vadjustment(wnd);
|
||||||
|
|
||||||
|
return ((ad->page_size + ad->value) >= ad->upper - (double)charHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_scroll_end(GtkTextView *view, gboolean needs) {
|
||||||
|
GtkTextBuffer *buf;
|
||||||
|
GtkTextMark *mark;
|
||||||
|
GtkTextIter iter;
|
||||||
|
|
||||||
|
if (!needs) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf = gtk_text_view_get_buffer(view);
|
||||||
|
mark = gtk_text_buffer_get_mark(buf, "end-of-buffer");
|
||||||
|
|
||||||
|
if (mark == NULL) {
|
||||||
|
gtk_text_buffer_get_end_iter(buf, &iter);
|
||||||
|
mark = gtk_text_buffer_create_mark(buf, "end-of-buffer", &iter, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_text_view_scroll_to_mark(view, mark, 0.0, TRUE, 1.0, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define MAX_BUF 1024
|
||||||
|
|
||||||
|
GString *
|
||||||
|
gm_read_file(const gchar *fname, gboolean readall, OpenLogProgress func, gpointer user_data) {
|
||||||
|
FILE *f;
|
||||||
|
gchar line[MAX_BUF], *tmp;
|
||||||
|
GString *str = NULL;
|
||||||
|
long bytes_read = 0, bytes_total = 0;
|
||||||
|
|
||||||
|
if (!fname) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
f = fopen(fname, "r");
|
||||||
|
|
||||||
|
if (f) {
|
||||||
|
fseek(f, 0, SEEK_END);
|
||||||
|
bytes_total = ftell(f);
|
||||||
|
rewind(f);
|
||||||
|
|
||||||
|
str = g_string_new("");
|
||||||
|
|
||||||
|
while (fgets((char *) &line, MAX_BUF, f) != NULL) {
|
||||||
|
bytes_read += strlen((char *)&line);
|
||||||
|
tmp = NULL;
|
||||||
|
if (g_utf8_validate(line, -1, NULL)) {
|
||||||
|
if (readall) {
|
||||||
|
str = g_string_append(str, line);
|
||||||
|
}
|
||||||
|
tmp = g_strdup(line);
|
||||||
|
} else {
|
||||||
|
tmp = g_locale_to_utf8(line, -1, NULL, NULL, NULL);
|
||||||
|
|
||||||
|
if (!tmp) {
|
||||||
|
tmp = g_convert(line, -1, "UTF-8", "ISO-8859-15", NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
if (!tmp) {
|
||||||
|
tmp = g_convert(line, -1, "UTF-8", "ISO-8859-15", NULL, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (readall) {
|
||||||
|
str = g_string_append(str, tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (func != NULL) {
|
||||||
|
func(bytes_read, bytes_total, tmp, user_data);
|
||||||
|
} else {
|
||||||
|
g_free(tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
|
return str;
|
||||||
|
} else {
|
||||||
|
debug_msg(1, "support_read_file: file (%s) could not be read: %s",
|
||||||
|
fname, strerror(errno));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget *
|
||||||
|
gm_create_tab_label(const gchar *icon, const gchar *caption, gboolean has_exit,
|
||||||
|
GmLabelInfo *info) {
|
||||||
|
/* First create the gbox (size 3) which will contain an icon, a label and a
|
||||||
|
exit button if has_exit is true */
|
||||||
|
GtkWidget *hboxTabLabel;
|
||||||
|
gint h, w;
|
||||||
|
|
||||||
|
hboxTabLabel = gtk_hbox_new(FALSE, 3);
|
||||||
|
|
||||||
|
gtk_widget_show(hboxTabLabel);
|
||||||
|
|
||||||
|
info->image_icon = gtk_image_new_from_pixbuf(
|
||||||
|
gm_pixbuf_get_at_size(icon, 16, 16));
|
||||||
|
gtk_widget_set_size_request(info->image_icon, 16, 16);
|
||||||
|
gtk_widget_show(info->image_icon);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hboxTabLabel), info->image_icon, TRUE, TRUE, 0);
|
||||||
|
|
||||||
|
info->label_name = gtk_label_new(caption);
|
||||||
|
gtk_widget_show(info->label_name);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hboxTabLabel), info->label_name, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
if (has_exit) {
|
||||||
|
info->button_exit = gtk_button_new();
|
||||||
|
gtk_widget_show(info->button_exit);
|
||||||
|
|
||||||
|
gtk_box_pack_end(GTK_BOX(hboxTabLabel), info->button_exit , FALSE,
|
||||||
|
FALSE, 0);
|
||||||
|
|
||||||
|
gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &w, &h);
|
||||||
|
gtk_widget_set_size_request(info->button_exit , w + 2, h + 2);
|
||||||
|
gtk_button_set_relief(GTK_BUTTON(info->button_exit ), GTK_RELIEF_NONE);
|
||||||
|
gtk_button_set_focus_on_click(GTK_BUTTON(info->button_exit), FALSE);
|
||||||
|
|
||||||
|
info->image_exit = gtk_image_new_from_stock("gtk-close",
|
||||||
|
GTK_ICON_SIZE_MENU);
|
||||||
|
gtk_widget_show(info->image_exit);
|
||||||
|
gtk_container_add(GTK_CONTAINER(info->button_exit), info->image_exit);
|
||||||
|
}
|
||||||
|
|
||||||
|
return hboxTabLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_widget_destroy_data(GtkWidget *caller, GtkWidget *destroyer) {
|
||||||
|
if (GTK_IS_WIDGET(destroyer)) {
|
||||||
|
gtk_widget_destroy(destroyer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_default_charset() {
|
||||||
|
const gchar *loc = NULL;
|
||||||
|
g_get_charset(&loc);
|
||||||
|
|
||||||
|
if (loc == NULL || strlen(loc) == 0) {
|
||||||
|
loc = "ISO-8859-15";
|
||||||
|
}
|
||||||
|
|
||||||
|
return loc;
|
||||||
|
}
|
|
@ -0,0 +1,148 @@
|
||||||
|
#ifndef __GM_SUPPORT_H__
|
||||||
|
#define __GM_SUPPORT_H__
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <libgnomevfs/gnome-vfs.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Standard gettext macros.
|
||||||
|
*/
|
||||||
|
#ifdef ENABLE_NLS
|
||||||
|
# include <libintl.h>
|
||||||
|
# undef _
|
||||||
|
# define _(String) dgettext (PACKAGE, String)
|
||||||
|
# ifdef gettext_noop
|
||||||
|
# define N_(String) gettext_noop (String)
|
||||||
|
# else
|
||||||
|
# define N_(String) (String)
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define textdomain(String) (String)
|
||||||
|
# define gettext(String) (String)
|
||||||
|
# define dgettext(Domain,Message) (Message)
|
||||||
|
# define dcgettext(Domain,Message,Type) (Message)
|
||||||
|
# define bindtextdomain(Domain,Directory) (Domain)
|
||||||
|
#ifndef _
|
||||||
|
# define _(String) (String)
|
||||||
|
#endif
|
||||||
|
# define N_(String) (String)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CALC_COLOR_RANGE(x) (int)((-(1/((x * 0.5)+1))+1)*255)
|
||||||
|
|
||||||
|
/** \defgroup support */
|
||||||
|
|
||||||
|
/** \ingroup support
|
||||||
|
* \brief Widget container for tabs
|
||||||
|
*
|
||||||
|
* Contains all widgets that could be useful to be modified.
|
||||||
|
* Stored here because it makes it easier to look them up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct _GmLabelInfo GmLabelInfo;
|
||||||
|
struct _GmLabelInfo {
|
||||||
|
/** \brief GtkButton widget
|
||||||
|
*
|
||||||
|
* GtkButton widget, reference to the tabs exit button
|
||||||
|
*/
|
||||||
|
GtkWidget *button_exit;
|
||||||
|
|
||||||
|
/** \brief GtkImage widget
|
||||||
|
*
|
||||||
|
* GtkImage widget, reference to the tabs exit button image
|
||||||
|
*/
|
||||||
|
GtkWidget *image_exit;
|
||||||
|
|
||||||
|
/** \brief GtkLabel widget
|
||||||
|
*
|
||||||
|
* GtkLabel widget, reference to the tabs label
|
||||||
|
*/
|
||||||
|
GtkWidget *label_name;
|
||||||
|
|
||||||
|
/** \brief GtkImage widget
|
||||||
|
*
|
||||||
|
* GtkImage widget, reference to the tabs icon
|
||||||
|
*/
|
||||||
|
GtkWidget *image_icon;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** \ingroup support
|
||||||
|
* \brief Key/value pair struct
|
||||||
|
*
|
||||||
|
* Contains two fields. Used to create hash tables
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct _keyvaluepair {
|
||||||
|
gchar *key; /**< the key */
|
||||||
|
gchar *value; /**< the value */
|
||||||
|
} keyvaluepair;
|
||||||
|
|
||||||
|
typedef struct _GmFetchHandle GmFetchHandle;
|
||||||
|
struct _GmFetchHandle {
|
||||||
|
GnomeVFSAsyncHandle *handle;
|
||||||
|
|
||||||
|
GFunc cb;
|
||||||
|
gpointer user_data;
|
||||||
|
|
||||||
|
GList *source_uri;
|
||||||
|
GList *dest_uri;
|
||||||
|
|
||||||
|
GnomeVFSXferPhase cur_phase;
|
||||||
|
GnomeVFSXferPhase prev_phase;
|
||||||
|
GnomeVFSXferProgressStatus prev_status;
|
||||||
|
GnomeVFSXferProgressStatus status;
|
||||||
|
|
||||||
|
GnomeVFSFileSize bytes_total;
|
||||||
|
GnomeVFSFileSize file_size;
|
||||||
|
GnomeVFSFileSize bytes_copied;
|
||||||
|
GnomeVFSFileSize total_bytes_copied;
|
||||||
|
|
||||||
|
gulong files_total;
|
||||||
|
gulong cur_file;
|
||||||
|
gulong prev_file;
|
||||||
|
gchar *cur_file_name;
|
||||||
|
|
||||||
|
gboolean aborted;
|
||||||
|
gboolean done;
|
||||||
|
};
|
||||||
|
|
||||||
|
gchar *gm_fix_decimal_point(gchar *line, int len);
|
||||||
|
gchar *gm_fix_decimal_point_rev(gchar *line, int len);
|
||||||
|
gchar *gm_ansi_strip(gchar * s);
|
||||||
|
int garray_length(gchar **s);
|
||||||
|
void g_list_free_simple(GList *s);
|
||||||
|
gchar *g_list_find_simple(GList *s, gchar *f);
|
||||||
|
|
||||||
|
void gm_error_dialog(gchar * message, GtkWindow * parent);
|
||||||
|
void gm_warning_dialog(gchar * message, GtkWindow * parent);
|
||||||
|
void gm_info_dialog(gchar * message, GtkWindow * parent);
|
||||||
|
void gm_question_dialog(gchar * message, GtkWindow * parent);
|
||||||
|
|
||||||
|
void gm_do_events();
|
||||||
|
|
||||||
|
gchar *gm_str_escape(gchar * line);
|
||||||
|
void gm_directory_remove_all(const gchar * path, gboolean remove_self);
|
||||||
|
|
||||||
|
gint gm_url_regex_match(const gchar *msg, int len, GArray *start, GArray *end);
|
||||||
|
void gm_open_url (const gchar *url);
|
||||||
|
|
||||||
|
GmFetchHandle * gm_fetch(const GList *source, const GList *dest,
|
||||||
|
GFunc cb, gpointer user_data);
|
||||||
|
void gm_fetch_handle_free(GmFetchHandle *g);
|
||||||
|
|
||||||
|
gboolean gm_is_end_scrolled(GtkScrolledWindow *wnd, guint charHeight);
|
||||||
|
void gm_scroll_end(GtkTextView *view, gboolean needs);
|
||||||
|
|
||||||
|
typedef void (*OpenLogProgress) (long, long, gchar *, gpointer);
|
||||||
|
GString *gm_read_file(const gchar *fname, gboolean readall,
|
||||||
|
OpenLogProgress func, gpointer user_data);
|
||||||
|
GtkWidget *gm_create_tab_label(const gchar *icon, const gchar *caption,
|
||||||
|
gboolean has_exit, GmLabelInfo *info);
|
||||||
|
void gm_widget_destroy_data(GtkWidget *caller, GtkWidget *destroyer);
|
||||||
|
const gchar *gm_default_charset();
|
||||||
|
|
||||||
|
#endif /* __GM_SUPPORT_H__ */
|
|
@ -0,0 +1,55 @@
|
||||||
|
|
||||||
|
#include "gm-tray.h"
|
||||||
|
#include "eggtrayicon.h"
|
||||||
|
|
||||||
|
#define GM_TRAY_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_TRAY, GmTrayPrivate))
|
||||||
|
|
||||||
|
typedef enum _tray_type {
|
||||||
|
TRAY_ICON_DEFAULT,
|
||||||
|
TRAY_ICON_ACTIVE,
|
||||||
|
TRAY_ICON_NOTIFY
|
||||||
|
} tray_type;
|
||||||
|
|
||||||
|
struct _GmTrayPrivate {
|
||||||
|
GtkWidget *event_box;
|
||||||
|
GtkWidget *image;
|
||||||
|
GtkTooltips *tooltips;
|
||||||
|
|
||||||
|
GtkWidget *popup_menu;
|
||||||
|
GtkWidget *show_popup_item;
|
||||||
|
GtkWidget *hide_popup_item;
|
||||||
|
|
||||||
|
guint flash_timeout;
|
||||||
|
tray_type iconnr;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint tray_signals[NUM_SIGNALS] = {0};
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmTray, gm_tray, EGG_TYPE_TRAY_ICON)
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_tray_finalize(GObject *object) {
|
||||||
|
GmTray *view = GM_TRAY(object);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_tray_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_tray_class_init(GmTrayClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_tray_finalize;
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmTrayPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_tray_init(GmTray *tray) {
|
||||||
|
tray->private = GM_TRAY_GET_PRIVATE(tray);
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
#ifndef __GM_TRAY_H__
|
||||||
|
#define __GM_TRAY_H__
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "eggtrayicon.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_TRAY (gm_tray_get_type())
|
||||||
|
#define GM_TRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_TRAY, GmTray))
|
||||||
|
#define GM_TRAY_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_TRAY, GmTray const))
|
||||||
|
#define GM_TRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GM_TYPE_TRAY, GmTrayClass))
|
||||||
|
#define GM_IS_TRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GM_TYPE_TRAY))
|
||||||
|
#define GM_IS_TRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_TYPE_TRAY))
|
||||||
|
#define GM_TRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GM_TYPE_TRAY, GmTrayClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmTrayPrivate GmTrayPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmTray GmTray;
|
||||||
|
|
||||||
|
struct _GmTray {
|
||||||
|
EggTrayIcon trayicon;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmTrayPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmTrayClass GmTrayClass;
|
||||||
|
|
||||||
|
struct _GmTrayClass {
|
||||||
|
EggTrayIconClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
};
|
||||||
|
|
||||||
|
GType gm_tray_get_type(void) G_GNUC_CONST;
|
||||||
|
GmTray *gm_tray_new(void);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
#endif /* __GM_TRAY_H__ */
|
|
@ -0,0 +1,991 @@
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <gdk/gdkkeysyms.h>
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include <libgnomeui/libgnomeui.h>
|
||||||
|
#include <glade/glade.h>
|
||||||
|
|
||||||
|
#include "gm-support.h"
|
||||||
|
|
||||||
|
#include "debug.h"
|
||||||
|
#include "gm-triggers-dialog.h"
|
||||||
|
#include "gm-app.h"
|
||||||
|
#include "gm-pixbuf.h"
|
||||||
|
#include "gm-scripts.h"
|
||||||
|
|
||||||
|
typedef struct _GmTriggersDialog {
|
||||||
|
GtkWidget *dialog;
|
||||||
|
GladeXML *xml;
|
||||||
|
GmWorld *world;
|
||||||
|
GmTrigger *trigger;
|
||||||
|
gboolean is_new;
|
||||||
|
|
||||||
|
GtkWidget *entry_name;
|
||||||
|
GtkWidget *button_ok;
|
||||||
|
GtkWidget *button_next;
|
||||||
|
GtkWidget *vbox_conditions;
|
||||||
|
GtkWidget *vbox_actions;
|
||||||
|
GtkWidget *notebook_triggers;
|
||||||
|
GtkWidget *tree_view_event_types;
|
||||||
|
GtkWidget *hbox_add_condition;
|
||||||
|
GtkWidget *hbox_add_action;
|
||||||
|
GtkTreeModel *action_model;
|
||||||
|
GtkTreeModel *condition_model;
|
||||||
|
GtkTreeModel *highlight_model;
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
GtkTreeModel *script_model;
|
||||||
|
#endif
|
||||||
|
} GmTriggersDialog;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
NO_ARGS,
|
||||||
|
SINGLE_ARGS,
|
||||||
|
CUSTOM_ARGS
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _CustomArgType {
|
||||||
|
CUSTOM_ARG_CREATE,
|
||||||
|
CUSTOM_ARG_GET_DATA
|
||||||
|
} CustomArgType;
|
||||||
|
|
||||||
|
gpointer gm_triggers_dialog_custom_arg_highlight(GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data);
|
||||||
|
gpointer gm_triggers_dialog_custom_arg_browse(GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data);
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
gpointer gm_triggers_dialog_custom_arg_script(GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CUSTOM_ARG_FUNC(x) (CustomArgFunc *)(x)
|
||||||
|
typedef gpointer (*CustomArgFunc) (GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
COLUMN_NAME,
|
||||||
|
COLUMN_DATA,
|
||||||
|
N_COLUMNS
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
COLUMN_HIGH_NAME,
|
||||||
|
COLUMN_HIGH_TAG,
|
||||||
|
N_COLUMNS_HIGH
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _ModelData {
|
||||||
|
gint type;
|
||||||
|
gchar *title;
|
||||||
|
gint args;
|
||||||
|
CustomArgFunc func;
|
||||||
|
} ModelData;
|
||||||
|
|
||||||
|
typedef struct _TagPair {
|
||||||
|
const gchar *name;
|
||||||
|
const gchar *tag;
|
||||||
|
} TagPair;
|
||||||
|
|
||||||
|
typedef struct _ComboBoxTypeData {
|
||||||
|
GmTriggersDialog *triggers;
|
||||||
|
GmTriggerData *data;
|
||||||
|
} ComboBoxTypeData;
|
||||||
|
|
||||||
|
static const TagPair highlightTags[] = {
|
||||||
|
{N_("Black"), "bg_black"},
|
||||||
|
{N_("Red"), "bg_red"},
|
||||||
|
{N_("Green"), "bg_green"},
|
||||||
|
{N_("Yellow"), "bg_yellow"},
|
||||||
|
{N_("Blue"), "bg_blue"},
|
||||||
|
{N_("Purple"), "bg_purple"},
|
||||||
|
{N_("Cyan"), "bg_cyan"},
|
||||||
|
{N_("White"), "bg_white"},
|
||||||
|
{NULL, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const ModelData dataConditionOutput[] = {
|
||||||
|
{TCT_CONTAINS, N_("Contains"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_NOT_CONTAINS, N_("Not contains"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_BEGINS, N_("Begins with"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_NOT_BEGINS, N_("Not begins with"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_ENDS, N_("Ends with"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_NOT_ENDS, N_("Not ends with"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_MATCHES, N_("Matches"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_NOT_MATCHES, N_("Not matches"), SINGLE_ARGS, NULL},
|
||||||
|
{-1, NULL, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const ModelData dataConditionUsers[] = {
|
||||||
|
{TCT_USER_ONLINE, N_("Online"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_USER_OFFLINE, N_("Offline"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_USER_IDLE, N_("Idle"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_USER_IDLE_OFF, N_("No longer idle"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_USER_AWAY, N_("Away"), SINGLE_ARGS, NULL},
|
||||||
|
{TCT_USER_AWAY_OFF, N_("No longer away"), SINGLE_ARGS, NULL},
|
||||||
|
{-1, NULL, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const ModelData dataActionOutput[] = {
|
||||||
|
{TAT_HIGHLIGHT_LINE, N_("Highlight line"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_highlight},
|
||||||
|
{TAT_HIGHLIGHT_MATCH, N_("Highlight match"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_highlight},
|
||||||
|
{TAT_BEEP, N_("Beep"), NO_ARGS, NULL},
|
||||||
|
{TAT_PLAY_SOUND, N_("Play sound"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_browse},
|
||||||
|
{TAT_NOTIFY, N_("Notify"), SINGLE_ARGS, NULL},
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
{TAT_RUN_SCRIPT, N_("Run script"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_script},
|
||||||
|
#endif
|
||||||
|
{TAT_RUN, N_("Run"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_browse},
|
||||||
|
{-1, NULL, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const ModelData dataActionUsers[] = {
|
||||||
|
{TAT_BEEP, N_("Beep"), NO_ARGS, NULL},
|
||||||
|
{TAT_PLAY_SOUND, N_("Play sound"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_browse},
|
||||||
|
{TAT_NOTIFY, N_("Notify"), SINGLE_ARGS, NULL},
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
{TAT_RUN_SCRIPT, N_("Run script"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_script},
|
||||||
|
#endif
|
||||||
|
{TAT_RUN, N_("Run"), CUSTOM_ARGS,
|
||||||
|
gm_triggers_dialog_custom_arg_browse},
|
||||||
|
{-1, NULL, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
void on_button_next_clicked(GtkButton *button, GmTriggersDialog *triggers);
|
||||||
|
void on_button_add_condition_clicked(GtkButton *button,
|
||||||
|
GmTriggersDialog *triggers);
|
||||||
|
void on_button_add_action_clicked(GtkButton *button,
|
||||||
|
GmTriggersDialog *triggers);
|
||||||
|
void on_notebook_triggers_switch_page(GtkNotebook *notebook, GtkNotebookPage
|
||||||
|
*page, guint page_num, GmTriggersDialog *triggers);
|
||||||
|
void on_combo_box_type_changed(GtkComboBox *widget, ComboBoxTypeData *tdata);
|
||||||
|
void on_combo_box_type_destroy(GtkObject *object, ComboBoxTypeData *tdata);
|
||||||
|
void on_button_remove_clicked(GtkButton *button, GmTriggersDialog *triggers);
|
||||||
|
void on_tree_view_event_types_changed(GtkTreeSelection *treeselection,
|
||||||
|
GmTriggersDialog *triggers);
|
||||||
|
|
||||||
|
#define G_TRIGGERS_XML PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-triggers.glade"
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_create_models(GmTriggersDialog *triggers,
|
||||||
|
const ModelData *conditionData, const ModelData *actionData) {
|
||||||
|
int i;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
ModelData *data;
|
||||||
|
GList *scripts, *item;
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
GmScript *script;
|
||||||
|
GmScriptFunction *func;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
triggers->action_model = GTK_TREE_MODEL(gtk_list_store_new(
|
||||||
|
N_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER));
|
||||||
|
triggers->condition_model = GTK_TREE_MODEL(gtk_list_store_new(
|
||||||
|
N_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER));
|
||||||
|
triggers->highlight_model = GTK_TREE_MODEL(gtk_list_store_new(
|
||||||
|
N_COLUMNS_HIGH, G_TYPE_STRING, G_TYPE_STRING));
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
triggers->script_model = GTK_TREE_MODEL(gtk_list_store_new(1,
|
||||||
|
G_TYPE_STRING));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
for (i = 0; conditionData[i].type != -1; i++) {
|
||||||
|
data = (ModelData *)(&(conditionData[i]));
|
||||||
|
gtk_list_store_append(GTK_LIST_STORE(triggers->condition_model), &iter);
|
||||||
|
gtk_list_store_set(GTK_LIST_STORE(triggers->condition_model), &iter,
|
||||||
|
COLUMN_NAME, _(data->title), COLUMN_DATA, data, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; actionData[i].type != -1; i++) {
|
||||||
|
data = (ModelData *)(&(actionData[i]));
|
||||||
|
gtk_list_store_append(GTK_LIST_STORE(triggers->action_model), &iter);
|
||||||
|
gtk_list_store_set(GTK_LIST_STORE(triggers->action_model), &iter,
|
||||||
|
COLUMN_NAME, _(data->title), COLUMN_DATA, data, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; highlightTags[i].name != NULL; i++) {
|
||||||
|
gtk_list_store_append(GTK_LIST_STORE(triggers->highlight_model), &iter);
|
||||||
|
gtk_list_store_set(GTK_LIST_STORE(triggers->highlight_model), &iter,
|
||||||
|
COLUMN_HIGH_NAME, _(highlightTags[i].name), COLUMN_HIGH_TAG,
|
||||||
|
highlightTags[i].tag, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
for (scripts = gm_scripts_scripts(gm_app_scripts(gm_app_instance()));
|
||||||
|
scripts; scripts = scripts->next) {
|
||||||
|
script = (GmScript *)(scripts->data);
|
||||||
|
|
||||||
|
for (item = script->functions; item; item = item->next) {
|
||||||
|
func = (GmScriptFunction *)(item->data);
|
||||||
|
gtk_list_store_append(GTK_LIST_STORE(triggers->script_model),
|
||||||
|
&iter);
|
||||||
|
gtk_list_store_set(GTK_LIST_STORE(triggers->script_model), &iter,
|
||||||
|
0, func->name, -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
ModelData *
|
||||||
|
gm_triggers_dialog_combo_get_selected_data(GmTriggersDialog *triggers,
|
||||||
|
GtkComboBox *combo) {
|
||||||
|
GtkTreeIter iter;
|
||||||
|
ModelData *data;
|
||||||
|
|
||||||
|
gtk_combo_box_get_active_iter(combo, &iter);
|
||||||
|
gtk_tree_model_get(gtk_combo_box_get_model(combo), &iter, COLUMN_DATA, &data,
|
||||||
|
-1);
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *
|
||||||
|
gm_triggers_dialog_collect_rules(GmTriggersDialog *triggers, GtkWidget *vbox) {
|
||||||
|
gchar *text;
|
||||||
|
GList *children, *child, *item, *result = NULL;
|
||||||
|
GtkComboBox *combo;
|
||||||
|
GtkEntry *entry;
|
||||||
|
ModelData *data;
|
||||||
|
GmTriggerData *d;
|
||||||
|
|
||||||
|
children = gtk_container_get_children(GTK_CONTAINER(vbox));
|
||||||
|
|
||||||
|
for (item = children; item; item = item->next) {
|
||||||
|
if (item->data == triggers->hbox_add_condition ||
|
||||||
|
item->data == triggers->hbox_add_action) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GTK_IS_HBOX(item->data)) {
|
||||||
|
child = gtk_container_get_children(GTK_CONTAINER(item->data));
|
||||||
|
combo = GTK_COMBO_BOX(child->data);
|
||||||
|
data = gm_triggers_dialog_combo_get_selected_data(triggers, combo);
|
||||||
|
d = NULL;
|
||||||
|
|
||||||
|
switch (data->args) {
|
||||||
|
case NO_ARGS:
|
||||||
|
d = gm_trigger_data_new(data->type, NULL);
|
||||||
|
break;
|
||||||
|
case SINGLE_ARGS:
|
||||||
|
if (child->next) {
|
||||||
|
entry = GTK_ENTRY(child->next->data);
|
||||||
|
text = (gchar *)gtk_entry_get_text(entry);
|
||||||
|
|
||||||
|
if (g_utf8_strlen(text, -1) > 0) {
|
||||||
|
d = gm_trigger_data_new(data->type, g_strdup(text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CUSTOM_ARGS:
|
||||||
|
text = (gchar *)(data->func(triggers, CUSTOM_ARG_GET_DATA,
|
||||||
|
child->next, NULL));
|
||||||
|
|
||||||
|
if (text != NULL && g_utf8_strlen(text, -1) > 0) {
|
||||||
|
d = gm_trigger_data_new(data->type, text);
|
||||||
|
} else {
|
||||||
|
g_free(text);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (d) {
|
||||||
|
result = g_list_append(result, d);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(children);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_triggers_dialog_fill_trigger(GmTriggersDialog *triggers) {
|
||||||
|
const gchar *name = gtk_entry_get_text(GTK_ENTRY(triggers->entry_name));
|
||||||
|
GList *conditions = NULL;
|
||||||
|
GList *actions = NULL;
|
||||||
|
|
||||||
|
if (g_utf8_strlen(name, -1) == 0) {
|
||||||
|
gm_error_dialog(_("Please fill in a trigger name"),
|
||||||
|
GTK_WINDOW(triggers->dialog));
|
||||||
|
gtk_widget_grab_focus(triggers->entry_name);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
conditions = gm_triggers_dialog_collect_rules(triggers,
|
||||||
|
triggers->vbox_conditions);
|
||||||
|
|
||||||
|
if (conditions == NULL) {
|
||||||
|
gm_error_dialog(_("Please specify at least one condition"),
|
||||||
|
GTK_WINDOW(triggers->dialog));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
actions = gm_triggers_dialog_collect_rules(triggers, triggers->vbox_actions);
|
||||||
|
|
||||||
|
if (actions == NULL) {
|
||||||
|
gm_trigger_free_list(conditions);
|
||||||
|
gm_error_dialog(_("Please specify at least one action"),
|
||||||
|
GTK_WINDOW(triggers->dialog));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_trigger_set_name(triggers->trigger, name);
|
||||||
|
gm_trigger_set_conditions(triggers->trigger, conditions);
|
||||||
|
gm_trigger_set_actions(triggers->trigger, actions);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_initialize_event_types(GmTriggersDialog *triggers) {
|
||||||
|
GtkListStore *store = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING,
|
||||||
|
G_TYPE_INT);
|
||||||
|
GtkCellRenderer *renderer;
|
||||||
|
GtkTreeViewColumn *column;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
gtk_tree_view_set_model(GTK_TREE_VIEW(triggers->tree_view_event_types),
|
||||||
|
GTK_TREE_MODEL(store));
|
||||||
|
|
||||||
|
renderer = gtk_cell_renderer_pixbuf_new();
|
||||||
|
column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "pixbuf",
|
||||||
|
0, NULL);
|
||||||
|
gtk_tree_view_column_set_min_width(column, 40);
|
||||||
|
|
||||||
|
gtk_tree_view_append_column(GTK_TREE_VIEW(triggers->tree_view_event_types),
|
||||||
|
column);
|
||||||
|
|
||||||
|
renderer = gtk_cell_renderer_text_new();
|
||||||
|
column = gtk_tree_view_column_new_with_attributes(NULL, renderer, "markup",
|
||||||
|
1, NULL);
|
||||||
|
gtk_tree_view_append_column(GTK_TREE_VIEW(triggers->tree_view_event_types),
|
||||||
|
column);
|
||||||
|
|
||||||
|
gtk_list_store_prepend(store, &iter);
|
||||||
|
gtk_list_store_set(store, &iter, 0,
|
||||||
|
gm_pixbuf_get_at_size("ice-userlist/programmer.svg", 32, 32), 1,
|
||||||
|
_("<b>Player event</b>\nPlayer events are triggered on userlist "
|
||||||
|
"activity"), 2, TT_USERS, -1);
|
||||||
|
|
||||||
|
gtk_list_store_prepend(store, &iter);
|
||||||
|
gtk_list_store_set(store, &iter, 0,
|
||||||
|
gm_pixbuf_get_at_size("world.svg", 32, 32), 1,
|
||||||
|
_("<b>World event</b>\nWorld events are triggered on incoming "
|
||||||
|
"lines of text"), 2, TT_OUTPUT, -1);
|
||||||
|
|
||||||
|
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(
|
||||||
|
GTK_TREE_VIEW(triggers->tree_view_event_types)), &iter);
|
||||||
|
g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(
|
||||||
|
triggers->tree_view_event_types)), "changed",
|
||||||
|
G_CALLBACK(on_tree_view_event_types_changed), NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTrigger *
|
||||||
|
gm_triggers_dialog_run_dialog(GmTriggersDialog *triggers) {
|
||||||
|
gboolean done = FALSE;
|
||||||
|
GmTrigger *result = NULL;
|
||||||
|
|
||||||
|
while (!done) {
|
||||||
|
done = TRUE;
|
||||||
|
|
||||||
|
switch (gtk_dialog_run(GTK_DIALOG(triggers->dialog))) {
|
||||||
|
case GTK_RESPONSE_OK:
|
||||||
|
done = gm_triggers_dialog_fill_trigger(triggers);
|
||||||
|
|
||||||
|
if (done) {
|
||||||
|
result = triggers->trigger;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (triggers->action_model != NULL)
|
||||||
|
g_object_unref(triggers->action_model);
|
||||||
|
if (triggers->condition_model != NULL)
|
||||||
|
g_object_unref(triggers->condition_model);
|
||||||
|
if (triggers->highlight_model != NULL)
|
||||||
|
g_object_unref(triggers->highlight_model);
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
if (triggers->script_model != NULL)
|
||||||
|
g_object_unref(triggers->script_model);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!result && triggers->is_new) {
|
||||||
|
gm_trigger_free(triggers->trigger);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_object_unref(triggers->xml);
|
||||||
|
gtk_widget_destroy(triggers->dialog);
|
||||||
|
|
||||||
|
g_free(triggers);
|
||||||
|
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTrigger *
|
||||||
|
gm_triggers_dialog_run_priv(GmWorld *world, GmTrigger *trigger,
|
||||||
|
gboolean is_new) {
|
||||||
|
GmTriggersDialog *triggers = g_new0(GmTriggersDialog, 1);
|
||||||
|
|
||||||
|
triggers->is_new = is_new;
|
||||||
|
triggers->world = world;
|
||||||
|
triggers->xml = glade_xml_new(G_TRIGGERS_XML, "gm_triggers_dialog", NULL);
|
||||||
|
triggers->dialog = glade_xml_get_widget(triggers->xml,
|
||||||
|
"gm_triggers_dialog");
|
||||||
|
triggers->entry_name = glade_xml_get_widget(triggers->xml, "entry_name");
|
||||||
|
triggers->vbox_conditions = glade_xml_get_widget(triggers->xml,
|
||||||
|
"vbox_conditions");
|
||||||
|
triggers->vbox_actions = glade_xml_get_widget(triggers->xml,
|
||||||
|
"vbox_actions");
|
||||||
|
triggers->notebook_triggers = glade_xml_get_widget(triggers->xml,
|
||||||
|
"notebook_triggers");
|
||||||
|
triggers->tree_view_event_types = glade_xml_get_widget(triggers->xml,
|
||||||
|
"tree_view_event_types");
|
||||||
|
triggers->button_ok = glade_xml_get_widget(triggers->xml, "button_ok");
|
||||||
|
triggers->hbox_add_condition = glade_xml_get_widget(triggers->xml,
|
||||||
|
"hbox_add_condition");
|
||||||
|
triggers->hbox_add_action = glade_xml_get_widget(triggers->xml,
|
||||||
|
"hbox_add_action");
|
||||||
|
triggers->button_next = glade_xml_get_widget(triggers->xml, "button_next");
|
||||||
|
|
||||||
|
gm_triggers_dialog_initialize_event_types(triggers);
|
||||||
|
|
||||||
|
glade_xml_signal_connect_data(triggers->xml, "on_button_next_clicked",
|
||||||
|
G_CALLBACK(on_button_next_clicked), triggers);
|
||||||
|
glade_xml_signal_connect_data(triggers->xml,
|
||||||
|
"on_button_add_condition_clicked",
|
||||||
|
G_CALLBACK(on_button_add_condition_clicked), triggers);
|
||||||
|
glade_xml_signal_connect_data(triggers->xml, "on_button_add_action_clicked",
|
||||||
|
G_CALLBACK(on_button_add_action_clicked), triggers);
|
||||||
|
glade_xml_signal_connect_data(triggers->xml,
|
||||||
|
"on_notebook_triggers_switch_page",
|
||||||
|
G_CALLBACK(on_notebook_triggers_switch_page), triggers);
|
||||||
|
|
||||||
|
triggers->trigger = trigger;
|
||||||
|
|
||||||
|
if (is_new) {
|
||||||
|
gtk_notebook_set_current_page(
|
||||||
|
GTK_NOTEBOOK(triggers->notebook_triggers), 0);
|
||||||
|
} else {
|
||||||
|
gtk_notebook_set_current_page(
|
||||||
|
GTK_NOTEBOOK(triggers->notebook_triggers), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_show_all(triggers->dialog);
|
||||||
|
return gm_triggers_dialog_run_dialog(triggers);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTrigger *
|
||||||
|
gm_triggers_dialog_run(GmWorld *world, GmTrigger *trigger) {
|
||||||
|
return gm_triggers_dialog_run_priv(world, trigger, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTrigger *
|
||||||
|
gm_triggers_dialog_run_new(GmWorld *world, GmTrigger *trigger) {
|
||||||
|
if (!trigger) {
|
||||||
|
trigger = gm_trigger_new();
|
||||||
|
}
|
||||||
|
|
||||||
|
return gm_triggers_dialog_run_priv(world, trigger, TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_select_combo_by_type(GmTriggersDialog *triggers,
|
||||||
|
GtkComboBox *combo, gint type) {
|
||||||
|
GtkTreeModel *model = gtk_combo_box_get_model(combo);
|
||||||
|
GtkTreeIter iter;
|
||||||
|
ModelData *data;
|
||||||
|
|
||||||
|
if (gtk_tree_model_get_iter_first(model, &iter)) {
|
||||||
|
do {
|
||||||
|
gtk_tree_model_get(model, &iter, COLUMN_DATA, &data, -1);
|
||||||
|
|
||||||
|
if (type == data->type) {
|
||||||
|
gtk_combo_box_set_active_iter(combo, &iter);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} while (gtk_tree_model_iter_next(model, &iter));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GtkWidget *
|
||||||
|
gm_triggers_dialog_create_item(GmTriggersDialog *triggers, GtkTreeModel *model,
|
||||||
|
GmTriggerData *t) {
|
||||||
|
GtkWidget *hbox, *combo, *button;
|
||||||
|
ComboBoxTypeData *data;
|
||||||
|
GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
|
||||||
|
hbox = gtk_hbox_new(FALSE, 6);
|
||||||
|
|
||||||
|
combo = gtk_combo_box_new_with_model(model);
|
||||||
|
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
|
||||||
|
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer, "text",
|
||||||
|
COLUMN_NAME, NULL);
|
||||||
|
|
||||||
|
|
||||||
|
data = g_new0(ComboBoxTypeData, 1);
|
||||||
|
data->triggers = triggers;
|
||||||
|
data->data = t;
|
||||||
|
|
||||||
|
g_signal_connect(combo, "changed", G_CALLBACK(on_combo_box_type_changed),
|
||||||
|
data);
|
||||||
|
g_signal_connect(combo, "destroy", G_CALLBACK(on_combo_box_type_destroy),
|
||||||
|
data);
|
||||||
|
|
||||||
|
button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
|
||||||
|
g_signal_connect(button, "clicked", G_CALLBACK(on_button_remove_clicked),
|
||||||
|
triggers);
|
||||||
|
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), combo, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, TRUE, 0);
|
||||||
|
|
||||||
|
gtk_widget_show_all(hbox);
|
||||||
|
return hbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_new_condition(GmTriggersDialog *triggers) {
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GList *children;
|
||||||
|
|
||||||
|
hbox = gm_triggers_dialog_create_item(triggers, triggers->condition_model,
|
||||||
|
NULL);
|
||||||
|
children = gtk_container_get_children(GTK_CONTAINER(hbox));
|
||||||
|
|
||||||
|
if (triggers->trigger->event == TT_OUTPUT) {
|
||||||
|
gm_triggers_dialog_select_combo_by_type(triggers,
|
||||||
|
GTK_COMBO_BOX(children->data), dataConditionOutput[0].type);
|
||||||
|
} else {
|
||||||
|
gm_triggers_dialog_select_combo_by_type(triggers,
|
||||||
|
GTK_COMBO_BOX(children->data), dataConditionUsers[0].type);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_box_pack_start(GTK_BOX(triggers->vbox_conditions), hbox, FALSE, TRUE,
|
||||||
|
0);
|
||||||
|
g_list_free(children);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_populate_conditions(GmTriggersDialog *triggers) {
|
||||||
|
GList *item;
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GmTriggerData *t;
|
||||||
|
GList *children;
|
||||||
|
|
||||||
|
if (triggers->trigger->conditions) {
|
||||||
|
for (item = triggers->trigger->conditions; item; item = item->next) {
|
||||||
|
t = (GmTriggerData *)(item->data);
|
||||||
|
|
||||||
|
hbox = gm_triggers_dialog_create_item(triggers,
|
||||||
|
triggers->condition_model, t);
|
||||||
|
children = gtk_container_get_children(GTK_CONTAINER(hbox));
|
||||||
|
|
||||||
|
gtk_box_pack_start(GTK_BOX(triggers->vbox_conditions), hbox,
|
||||||
|
FALSE, TRUE, 0);
|
||||||
|
gm_triggers_dialog_select_combo_by_type(triggers,
|
||||||
|
GTK_COMBO_BOX(children->data), t->type);
|
||||||
|
g_list_free(children);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gm_triggers_dialog_new_condition(triggers);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_new_action(GmTriggersDialog *triggers) {
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GList *children;
|
||||||
|
|
||||||
|
hbox = gm_triggers_dialog_create_item(triggers, triggers->action_model,
|
||||||
|
NULL);
|
||||||
|
children = gtk_container_get_children(GTK_CONTAINER(hbox));
|
||||||
|
|
||||||
|
if (triggers->trigger->event == TT_OUTPUT) {
|
||||||
|
gm_triggers_dialog_select_combo_by_type(triggers,
|
||||||
|
GTK_COMBO_BOX(children->data), dataActionOutput[0].type);
|
||||||
|
} else {
|
||||||
|
gm_triggers_dialog_select_combo_by_type(triggers,
|
||||||
|
GTK_COMBO_BOX(children->data), dataActionUsers[0].type);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_box_pack_start(GTK_BOX(triggers->vbox_actions), hbox, FALSE, TRUE, 0);
|
||||||
|
g_list_free(children);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_dialog_populate_actions(GmTriggersDialog *triggers) {
|
||||||
|
GList *item;
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GmTriggerData *t;
|
||||||
|
GList *children;
|
||||||
|
|
||||||
|
if (triggers->trigger->actions) {
|
||||||
|
for (item = triggers->trigger->actions; item; item = item->next) {
|
||||||
|
t = (GmTriggerData *)(item->data);
|
||||||
|
hbox = gm_triggers_dialog_create_item(triggers,
|
||||||
|
triggers->action_model, t);
|
||||||
|
children = gtk_container_get_children(GTK_CONTAINER(hbox));
|
||||||
|
|
||||||
|
gtk_box_pack_start(GTK_BOX(triggers->vbox_actions), hbox, FALSE,
|
||||||
|
TRUE, 0);
|
||||||
|
gm_triggers_dialog_select_combo_by_type(triggers,
|
||||||
|
GTK_COMBO_BOX(children->data), t->type);
|
||||||
|
|
||||||
|
g_list_free(children);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gm_triggers_dialog_new_action(triggers);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CALLBACKS */
|
||||||
|
void
|
||||||
|
on_button_next_clicked(GtkButton *button, GmTriggersDialog *triggers) {
|
||||||
|
GtkTreeSelection *selection;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
gint type;
|
||||||
|
|
||||||
|
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(
|
||||||
|
triggers->tree_view_event_types));
|
||||||
|
model = gtk_tree_view_get_model(GTK_TREE_VIEW(
|
||||||
|
triggers->tree_view_event_types));
|
||||||
|
|
||||||
|
if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
|
||||||
|
gtk_tree_model_get(model, &iter, 2, &type, -1);
|
||||||
|
|
||||||
|
triggers->trigger->event = type;
|
||||||
|
gtk_notebook_set_current_page(GTK_NOTEBOOK(
|
||||||
|
triggers->notebook_triggers), 1);
|
||||||
|
} else {
|
||||||
|
gm_error_dialog(_("Select a event type first"),
|
||||||
|
GTK_WINDOW(triggers->dialog));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_tree_view_event_types_changed(GtkTreeSelection *treeselection,
|
||||||
|
GmTriggersDialog *triggers) {
|
||||||
|
GtkTreeIter iter;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
gint type;
|
||||||
|
|
||||||
|
model = gtk_tree_view_get_model(GTK_TREE_VIEW(
|
||||||
|
triggers->tree_view_event_types));
|
||||||
|
|
||||||
|
if (!gtk_tree_selection_get_selected(treeselection, &model, &iter)) {
|
||||||
|
gtk_widget_set_sensitive(triggers->button_next, FALSE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_set_sensitive(triggers->button_next, TRUE);
|
||||||
|
gtk_tree_model_get(model, &iter, 2, &type, -1);
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case TT_OUTPUT:
|
||||||
|
gtk_window_set_icon(GTK_WINDOW(triggers->dialog),
|
||||||
|
gm_pixbuf_get_at_size("world.svg", 16, 16));
|
||||||
|
break;
|
||||||
|
case TT_USERS:
|
||||||
|
gtk_window_set_icon(GTK_WINDOW(triggers->dialog),
|
||||||
|
gm_pixbuf_get_at_size("ice-userlist/programmer.svg",
|
||||||
|
16, 16));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_notebook_triggers_switch_page(GtkNotebook *notebook, GtkNotebookPage *page,
|
||||||
|
guint page_num, GmTriggersDialog *triggers) {
|
||||||
|
const ModelData *conditionData = NULL;
|
||||||
|
const ModelData *actionData = NULL;
|
||||||
|
|
||||||
|
if (page_num != 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_set_sensitive(triggers->button_ok, TRUE);
|
||||||
|
|
||||||
|
switch (triggers->trigger->event) {
|
||||||
|
case TT_OUTPUT:
|
||||||
|
gtk_window_set_icon(GTK_WINDOW(triggers->dialog),
|
||||||
|
gm_pixbuf_get_at_size("world.svg", 16, 16));
|
||||||
|
conditionData = dataConditionOutput;
|
||||||
|
actionData = dataActionOutput;
|
||||||
|
break;
|
||||||
|
case TT_USERS:
|
||||||
|
gtk_window_set_icon(GTK_WINDOW(triggers->dialog),
|
||||||
|
gm_pixbuf_get_at_size("ice-userlist/programmer.svg",
|
||||||
|
16, 16));
|
||||||
|
conditionData = dataConditionUsers;
|
||||||
|
actionData = dataActionUsers;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_triggers_dialog_create_models(triggers, conditionData, actionData);
|
||||||
|
|
||||||
|
if (triggers->trigger->name) {
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(triggers->entry_name),
|
||||||
|
triggers->trigger->name);
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_triggers_dialog_populate_conditions(triggers);
|
||||||
|
gm_triggers_dialog_populate_actions(triggers);
|
||||||
|
}
|
||||||
|
|
||||||
|
gpointer
|
||||||
|
gm_triggers_dialog_custom_arg_highlight(GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data) {
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GtkWidget *combo;
|
||||||
|
GtkCellRenderer *renderer;
|
||||||
|
GList *item;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
GtkTreeModel *model;
|
||||||
|
gchar *tag;
|
||||||
|
GmTriggerData *t = (GmTriggerData *)(user_data);
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case CUSTOM_ARG_CREATE:
|
||||||
|
hbox = GTK_WIDGET(data);
|
||||||
|
combo = gtk_combo_box_new_with_model(triggers->highlight_model);
|
||||||
|
renderer = gtk_cell_renderer_text_new();
|
||||||
|
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), renderer, TRUE);
|
||||||
|
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), renderer,
|
||||||
|
"text", COLUMN_HIGH_NAME, NULL);
|
||||||
|
|
||||||
|
if (!user_data) {
|
||||||
|
gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
|
||||||
|
} else {
|
||||||
|
model = gtk_combo_box_get_model(GTK_COMBO_BOX(combo));
|
||||||
|
|
||||||
|
if (gtk_tree_model_get_iter_first(model, &iter)) {
|
||||||
|
do {
|
||||||
|
gtk_tree_model_get(model, &iter, COLUMN_HIGH_TAG,
|
||||||
|
&tag, -1);
|
||||||
|
|
||||||
|
if (strcmp(tag, t->data) == 0) {
|
||||||
|
gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combo),
|
||||||
|
&iter);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(tag);
|
||||||
|
} while (gtk_tree_model_iter_next(model, &iter));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_show(combo);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), combo, TRUE, TRUE, 0);
|
||||||
|
break;
|
||||||
|
case CUSTOM_ARG_GET_DATA:
|
||||||
|
item = (GList *)(data);
|
||||||
|
model = gtk_combo_box_get_model(GTK_COMBO_BOX(item->data));
|
||||||
|
gtk_combo_box_get_active_iter(GTK_COMBO_BOX(item->data), &iter);
|
||||||
|
gtk_tree_model_get(model, &iter, COLUMN_HIGH_TAG, &tag, -1);
|
||||||
|
|
||||||
|
return tag;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_button_browse_clicked(GtkButton *widget, GtkEntry *entry) {
|
||||||
|
gchar *tmp;
|
||||||
|
GtkWidget *d = gtk_file_chooser_dialog_new(_("Select file"),
|
||||||
|
NULL, GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||||
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
|
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (gtk_dialog_run(GTK_DIALOG(d)) == GTK_RESPONSE_ACCEPT) {
|
||||||
|
tmp = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(d));
|
||||||
|
gtk_entry_set_text(entry, tmp);
|
||||||
|
g_free(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_destroy(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
gpointer
|
||||||
|
gm_triggers_dialog_custom_arg_browse(GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data) {
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GtkWidget *entry;
|
||||||
|
GtkWidget *browse, *tmp;
|
||||||
|
GmTriggerData *t = (GmTriggerData *)(user_data);
|
||||||
|
GList *item;
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case CUSTOM_ARG_CREATE:
|
||||||
|
hbox = GTK_WIDGET(data);
|
||||||
|
entry = gtk_entry_new();
|
||||||
|
|
||||||
|
if (t) {
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(entry), t->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
browse = gtk_button_new();
|
||||||
|
tmp = gtk_hbox_new(FALSE, 3);
|
||||||
|
gtk_container_add(GTK_CONTAINER(browse), tmp);
|
||||||
|
gtk_box_pack_start(GTK_BOX(tmp), gtk_image_new_from_stock(
|
||||||
|
GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON), FALSE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(tmp), gtk_label_new(_("Browse")),
|
||||||
|
TRUE, TRUE, 0);
|
||||||
|
|
||||||
|
g_signal_connect(browse, "clicked",
|
||||||
|
G_CALLBACK(on_button_browse_clicked), entry);
|
||||||
|
|
||||||
|
gtk_widget_show(entry);
|
||||||
|
gtk_widget_show_all(browse);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), browse, FALSE, TRUE, 0);
|
||||||
|
break;
|
||||||
|
case CUSTOM_ARG_GET_DATA:
|
||||||
|
item = (GList *)(data);
|
||||||
|
return g_strdup(gtk_entry_get_text(GTK_ENTRY(item->data)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_combo_box_type_changed(GtkComboBox *widget, ComboBoxTypeData *tdata) {
|
||||||
|
GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(widget));
|
||||||
|
GList *item, *children = gtk_container_get_children(GTK_CONTAINER(parent));
|
||||||
|
ModelData *data;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
GtkWidget *tmp;
|
||||||
|
|
||||||
|
for (item = children->next; item && item->next; item = item->next) {
|
||||||
|
gtk_widget_destroy(GTK_WIDGET(item->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(children);
|
||||||
|
|
||||||
|
if (gtk_combo_box_get_active_iter(widget, &iter)) {
|
||||||
|
gtk_tree_model_get(gtk_combo_box_get_model(widget), &iter,
|
||||||
|
COLUMN_DATA, &data, -1);
|
||||||
|
|
||||||
|
switch (data->args) {
|
||||||
|
case SINGLE_ARGS:
|
||||||
|
tmp = gtk_entry_new();
|
||||||
|
|
||||||
|
if (tdata->data) {
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(tmp), tdata->data->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_show(tmp);
|
||||||
|
gtk_box_pack_start(GTK_BOX(parent), tmp, TRUE, TRUE, 0);
|
||||||
|
break;
|
||||||
|
case CUSTOM_ARGS:
|
||||||
|
data->func(tdata->triggers,
|
||||||
|
CUSTOM_ARG_CREATE, (gpointer)parent,
|
||||||
|
(gpointer)tdata->data);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tdata->data != NULL) {
|
||||||
|
tdata->data = NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
debug_msg(0, "No active iter!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_combo_box_type_destroy(GtkObject *object, ComboBoxTypeData *tdata) {
|
||||||
|
g_free(tdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_RUBY
|
||||||
|
gpointer
|
||||||
|
gm_triggers_dialog_custom_arg_script(GmTriggersDialog *triggers,
|
||||||
|
CustomArgType type, gpointer data, gpointer user_data) {
|
||||||
|
GtkWidget *hbox;
|
||||||
|
GtkWidget *entry;
|
||||||
|
GtkEntryCompletion *entry_completion;
|
||||||
|
GList *item;
|
||||||
|
GmTriggerData *t = (GmTriggerData *)(user_data);
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case CUSTOM_ARG_CREATE:
|
||||||
|
hbox = GTK_WIDGET(data);
|
||||||
|
entry = gtk_entry_new();
|
||||||
|
entry_completion = gtk_entry_completion_new();
|
||||||
|
gtk_entry_completion_set_model(entry_completion,
|
||||||
|
triggers->script_model);
|
||||||
|
gtk_entry_completion_set_text_column(entry_completion, 0);
|
||||||
|
gtk_entry_set_completion(GTK_ENTRY(entry), entry_completion);
|
||||||
|
|
||||||
|
if (user_data) {
|
||||||
|
gtk_entry_set_text(GTK_ENTRY(entry), t->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
gtk_widget_show(entry);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, FALSE, 0);
|
||||||
|
break;
|
||||||
|
case CUSTOM_ARG_GET_DATA:
|
||||||
|
item = (GList *)(data);
|
||||||
|
return g_strdup(gtk_entry_get_text(GTK_ENTRY(item->data)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gm_triggers_dialog_idle_remove_item(GtkWidget *parent) {
|
||||||
|
gtk_widget_destroy(parent);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_button_remove_clicked(GtkButton *button, GmTriggersDialog *triggers) {
|
||||||
|
g_idle_add((GSourceFunc)(gm_triggers_dialog_idle_remove_item),
|
||||||
|
gtk_widget_get_parent(GTK_WIDGET(button)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_button_add_condition_clicked(GtkButton *button, GmTriggersDialog *triggers) {
|
||||||
|
gm_triggers_dialog_new_condition(triggers);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
on_button_add_action_clicked(GtkButton *button, GmTriggersDialog *triggers) {
|
||||||
|
gm_triggers_dialog_new_action(triggers);
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
#ifndef __GM_TRIGGERS_DIALOG__
|
||||||
|
#define __GM_TRIGGERS_DIALOG__
|
||||||
|
|
||||||
|
#include "gm-triggers.h"
|
||||||
|
#include "gm-world.h"
|
||||||
|
|
||||||
|
GmTrigger *gm_triggers_dialog_run(GmWorld *world, GmTrigger *trig);
|
||||||
|
GmTrigger *gm_triggers_dialog_run_new(GmWorld *world, GmTrigger *trig);
|
||||||
|
|
||||||
|
#endif /* __GM_TRIGGERS_DIALOG__ */
|
|
@ -0,0 +1,440 @@
|
||||||
|
#include <strings.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <libxml/parser.h>
|
||||||
|
#include "gm-triggers.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
#define GM_TRIGGERS_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GM_TYPE_TRIGGERS, GmTriggersPrivate))
|
||||||
|
|
||||||
|
typedef struct _trigger_trans {
|
||||||
|
gint type;
|
||||||
|
const gchar *name;
|
||||||
|
} trigger_trans;
|
||||||
|
|
||||||
|
static const trigger_trans table_conditions[] = {
|
||||||
|
{TCT_CONTAINS, "contains"},
|
||||||
|
{TCT_NOT_CONTAINS, "not-contains"},
|
||||||
|
{TCT_BEGINS, "begins"},
|
||||||
|
{TCT_NOT_BEGINS, "not-begins"},
|
||||||
|
{TCT_ENDS, "ends"},
|
||||||
|
{TCT_NOT_ENDS, "not-ends"},
|
||||||
|
{TCT_MATCHES, "matches"},
|
||||||
|
{TCT_NOT_MATCHES, "not-matches"},
|
||||||
|
{TCT_USER_ONLINE, "online"},
|
||||||
|
{TCT_USER_OFFLINE, "offline"},
|
||||||
|
{TCT_USER_IDLE, "idle"},
|
||||||
|
{TCT_USER_IDLE_OFF, "idle-off"},
|
||||||
|
{TCT_USER_AWAY, "away"},
|
||||||
|
{TCT_USER_AWAY_OFF, "away-off"},
|
||||||
|
{-1, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const trigger_trans table_actions[] = {
|
||||||
|
{TAT_HIGHLIGHT_LINE, "highlight-line"},
|
||||||
|
{TAT_HIGHLIGHT_MATCH, "highlight-match"},
|
||||||
|
{TAT_BEEP, "beep"},
|
||||||
|
{TAT_PLAY_SOUND, "play-sound"},
|
||||||
|
{TAT_NOTIFY, "notify"},
|
||||||
|
#ifdef HASRUBY
|
||||||
|
{TAT_RUN_SCRIPT, "run-script"},
|
||||||
|
#endif
|
||||||
|
{TAT_RUN, "run"},
|
||||||
|
{-1, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _GmTriggersPrivate {
|
||||||
|
GList *triggers;
|
||||||
|
gchar *path;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
|
||||||
|
/*enum {
|
||||||
|
PROTO
|
||||||
|
NUM_SIGNALS
|
||||||
|
};
|
||||||
|
|
||||||
|
static guint triggers_signals[NUM_SIGNALS] = {0};*/
|
||||||
|
|
||||||
|
G_DEFINE_TYPE(GmTriggers, gm_triggers, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_triggers_finalize(GObject *object) {
|
||||||
|
GmTriggers *trg = GM_TRIGGERS(object);
|
||||||
|
GList *item;
|
||||||
|
|
||||||
|
for (item = trg->priv->triggers; item; item = item->next) {
|
||||||
|
gm_trigger_free((GmTrigger *)(item->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free(trg->priv->path);
|
||||||
|
g_list_free(trg->priv->triggers);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS(gm_triggers_parent_class)->finalize(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_triggers_class_init(GmTriggersClass *klass) {
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS(klass);
|
||||||
|
|
||||||
|
object_class->finalize = gm_triggers_finalize;
|
||||||
|
|
||||||
|
g_type_class_add_private(object_class, sizeof(GmTriggersPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gm_triggers_init(GmTriggers *trg) {
|
||||||
|
trg->priv = GM_TRIGGERS_GET_PRIVATE(trg);
|
||||||
|
trg->priv->triggers = NULL;
|
||||||
|
trg->priv->path = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTrigger *
|
||||||
|
gm_trigger_new() {
|
||||||
|
return g_new0(GmTrigger, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
GList *
|
||||||
|
gm_trigger_list_dup(GList *list) {
|
||||||
|
GList *result = NULL;
|
||||||
|
GList *item;
|
||||||
|
GmTriggerData *data;
|
||||||
|
|
||||||
|
for (item = list; item; item = item->next) {
|
||||||
|
data = (GmTriggerData *)(item->data);
|
||||||
|
result = g_list_append(result, gm_trigger_data_new(data->type,
|
||||||
|
g_strdup(data->data)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTrigger *
|
||||||
|
gm_trigger_dup(GmTrigger *source) {
|
||||||
|
GmTrigger *result = gm_trigger_new();
|
||||||
|
|
||||||
|
result->name = g_strdup(source->name);
|
||||||
|
result->event = source->event;
|
||||||
|
result->conditions = gm_trigger_list_dup(source->conditions);
|
||||||
|
result->actions = gm_trigger_list_dup(source->actions);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_set_name(GmTrigger *trigger, const gchar *name) {
|
||||||
|
g_free(trigger->name);
|
||||||
|
trigger->name = g_strdup(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_free_list(GList *list) {
|
||||||
|
GList *item;
|
||||||
|
GmTriggerData *data;
|
||||||
|
|
||||||
|
for (item = list; item; item = item->next) {
|
||||||
|
data = (GmTriggerData *)(item->data);
|
||||||
|
gm_trigger_data_free(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_free(GmTrigger *trigger) {
|
||||||
|
gm_trigger_free_list(trigger->conditions);
|
||||||
|
gm_trigger_free_list(trigger->actions);
|
||||||
|
g_free(trigger->name);
|
||||||
|
|
||||||
|
g_free(trigger);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTriggerData *
|
||||||
|
gm_trigger_data_new(gint type, gchar *data) {
|
||||||
|
GmTriggerData *tdata = g_new0(GmTriggerData, 1);
|
||||||
|
tdata->type = type;
|
||||||
|
tdata->data = data;
|
||||||
|
|
||||||
|
memset(&(tdata->expr), 0, sizeof(regex_t));
|
||||||
|
|
||||||
|
switch (tdata->type) {
|
||||||
|
case TCT_MATCHES: case TCT_NOT_MATCHES: case TCT_USER_ONLINE:
|
||||||
|
case TCT_USER_OFFLINE: case TCT_USER_IDLE: case TCT_USER_IDLE_OFF:
|
||||||
|
case TCT_USER_AWAY: case TCT_USER_AWAY_OFF:
|
||||||
|
regcomp(&(tdata->expr), tdata->data, REG_EXTENDED);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return tdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_data_free(GmTriggerData *tdata) {
|
||||||
|
g_free(tdata->data);
|
||||||
|
g_free(tdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_add_condition(GmTrigger *trigger, GmTriggerData *condition) {
|
||||||
|
trigger->conditions = g_list_append(trigger->conditions, condition);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_add_action(GmTrigger *trigger, GmTriggerData *action) {
|
||||||
|
trigger->actions = g_list_append(trigger->actions, action);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_set_conditions(GmTrigger *trigger, GList *conditions) {
|
||||||
|
gm_trigger_free_list(trigger->conditions);
|
||||||
|
trigger->conditions = conditions;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_set_actions(GmTrigger *trigger, GList *actions) {
|
||||||
|
gm_trigger_free_list(trigger->actions);
|
||||||
|
trigger->actions = actions;
|
||||||
|
}
|
||||||
|
|
||||||
|
gint
|
||||||
|
gm_trigger_type_from_name(const gchar *name,
|
||||||
|
const trigger_trans *trans_table) {
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; trans_table[i].type != -1; i++) {
|
||||||
|
if (strcasecmp(trans_table[i].name, name) == 0) {
|
||||||
|
return trans_table[i].type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const gchar *
|
||||||
|
gm_trigger_name_from_type(gint type, const trigger_trans *trans_table) {
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; trans_table[i].type != -1; i++) {
|
||||||
|
if (trans_table[i].type == type) {
|
||||||
|
return trans_table[i].name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_parse_trigger(GmTriggers *trg, xmlDocPtr doc, xmlNodePtr node) {
|
||||||
|
GmTrigger *result = gm_trigger_new();
|
||||||
|
xmlChar *tmp, *tmp2;
|
||||||
|
gint type;
|
||||||
|
|
||||||
|
tmp = xmlGetProp(node, (const xmlChar *)"name");
|
||||||
|
result->name = (gchar *)tmp;
|
||||||
|
|
||||||
|
tmp = xmlGetProp(node, (const xmlChar *)"event");
|
||||||
|
|
||||||
|
if (xmlStrcmp(tmp, (const xmlChar *)("world")) == 0) {
|
||||||
|
result->event = TT_OUTPUT;
|
||||||
|
} else if (xmlStrcmp(tmp, (const xmlChar *)("player")) == 0){
|
||||||
|
result->event = TT_USERS;
|
||||||
|
} else {
|
||||||
|
xmlFree(tmp);
|
||||||
|
gm_trigger_free(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlFree(tmp);
|
||||||
|
|
||||||
|
for (node = node->xmlChildrenNode; node; node = node->next) {
|
||||||
|
tmp = xmlGetProp(node, (const xmlChar *)"type");
|
||||||
|
tmp2 = xmlGetProp(node, (const xmlChar *)"data");
|
||||||
|
|
||||||
|
if (xmlStrcmp(node->name, (const xmlChar *)("condition")) == 0) {
|
||||||
|
type = gm_trigger_type_from_name((const gchar *)(tmp),
|
||||||
|
table_conditions);
|
||||||
|
|
||||||
|
if (type != -1) {
|
||||||
|
gm_trigger_add_condition(result, gm_trigger_data_new(type,
|
||||||
|
g_strdup((char *)tmp2)));
|
||||||
|
}
|
||||||
|
} else if (xmlStrcmp(node->name, (const xmlChar *)("action")) == 0) {
|
||||||
|
type = gm_trigger_type_from_name((const gchar *)(tmp),
|
||||||
|
table_actions);
|
||||||
|
|
||||||
|
if (type != -1) {
|
||||||
|
gm_trigger_add_action(result, gm_trigger_data_new(type,
|
||||||
|
g_strdup((char *)tmp2)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlFree(tmp2);
|
||||||
|
xmlFree(tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_triggers_add(trg, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTriggers *
|
||||||
|
gm_triggers_new() {
|
||||||
|
GmTriggers *trg = GM_TRIGGERS(g_object_new(GM_TYPE_TRIGGERS, NULL));
|
||||||
|
|
||||||
|
return trg;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_add(GmTriggers *trg, GmTrigger *t) {
|
||||||
|
trg->priv->triggers = g_list_append(trg->priv->triggers, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_clear(GmTriggers *trg) {
|
||||||
|
GList *item;
|
||||||
|
|
||||||
|
for (item = trg->priv->triggers; item; item = item->next) {
|
||||||
|
gm_trigger_free((GmTrigger *)(item->data));
|
||||||
|
}
|
||||||
|
|
||||||
|
g_list_free(trg->priv->triggers);
|
||||||
|
trg->priv->triggers = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTriggers *
|
||||||
|
gm_triggers_new_from_file(gchar *filename) {
|
||||||
|
GmTriggers *trg = GM_TRIGGERS(g_object_new(GM_TYPE_TRIGGERS, NULL));
|
||||||
|
xmlDocPtr doc;
|
||||||
|
xmlNodePtr cur;
|
||||||
|
|
||||||
|
if (!g_file_test(filename, G_FILE_TEST_EXISTS)) {
|
||||||
|
debug_msg(1, "GmTriggers.NewFromFile: Trigger file does not exist");
|
||||||
|
return trg;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
trg->priv->path = g_strdup(filename);
|
||||||
|
doc = xmlParseFile(filename);
|
||||||
|
|
||||||
|
if (doc == NULL) {
|
||||||
|
debug_msg(1, "GmTriggers.NewFromFile: Error on parsing triggers");
|
||||||
|
return trg;
|
||||||
|
}
|
||||||
|
|
||||||
|
cur = xmlDocGetRootElement(doc);
|
||||||
|
|
||||||
|
if (cur == NULL) {
|
||||||
|
xmlFreeDoc(doc);
|
||||||
|
return trg;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xmlStrcmp(cur->name, (const xmlChar *)("triggers"))) {
|
||||||
|
debug_msg(1, "GmTriggers.NewFromFile: invalid root node");
|
||||||
|
xmlFreeDoc(doc);
|
||||||
|
return trg;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (cur = cur->xmlChildrenNode; cur; cur = cur->next) {
|
||||||
|
if (!xmlStrcmp(cur->name, (const xmlChar *)("trigger"))) {
|
||||||
|
gm_triggers_parse_trigger(trg, doc, cur);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlFreeDoc(doc);
|
||||||
|
return trg;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_set_path(GmTriggers *trg, gchar *path) {
|
||||||
|
g_free(trg->priv->path);
|
||||||
|
trg->priv->path = g_strdup(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_trigger_rules_xml(GmTrigger *t, xmlNodePtr trig) {
|
||||||
|
GmTriggerData *data;
|
||||||
|
GList *item;
|
||||||
|
xmlNodePtr child;
|
||||||
|
|
||||||
|
for (item = t->conditions; item; item = item->next) {
|
||||||
|
data = (GmTriggerData *)(item->data);
|
||||||
|
child = xmlNewChild(trig, NULL, (const xmlChar *)("condition"), NULL);
|
||||||
|
xmlNewProp(child, (const xmlChar *)("type"), (const xmlChar *)
|
||||||
|
(gm_trigger_name_from_type(data->type, table_conditions)));
|
||||||
|
|
||||||
|
if (data->data) {
|
||||||
|
xmlNewProp(child, (const xmlChar *)("data"), (const xmlChar *)
|
||||||
|
(data->data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (item = t->actions; item; item = item->next) {
|
||||||
|
data = (GmTriggerData *)(item->data);
|
||||||
|
child = xmlNewChild(trig, NULL, (const xmlChar *)("action"), NULL);
|
||||||
|
xmlNewProp(child, (const xmlChar *)("type"), (const xmlChar *)
|
||||||
|
(gm_trigger_name_from_type(data->type, table_actions)));
|
||||||
|
|
||||||
|
if (data->data) {
|
||||||
|
xmlNewProp(child, (const xmlChar *)("data"), (const xmlChar *)
|
||||||
|
(data->data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_save(GmTriggers *trg) {
|
||||||
|
xmlDocPtr doc;
|
||||||
|
xmlNodePtr root;
|
||||||
|
xmlNodePtr trig;
|
||||||
|
GList *item;
|
||||||
|
GmTrigger *t;
|
||||||
|
|
||||||
|
g_return_if_fail(trg->priv->path != NULL);
|
||||||
|
|
||||||
|
doc = xmlNewDoc((const xmlChar *)("1.0"));
|
||||||
|
root = xmlNewNode(NULL, (const xmlChar *)("triggers"));
|
||||||
|
xmlDocSetRootElement(doc, root);
|
||||||
|
|
||||||
|
for (item = trg->priv->triggers; item; item = item->next) {
|
||||||
|
t = (GmTrigger *)(item->data);
|
||||||
|
trig = xmlNewChild(root, NULL, (const xmlChar *)("trigger"), NULL);
|
||||||
|
xmlNewProp(trig, (const xmlChar *)("name"), (const xmlChar *)(t->name));
|
||||||
|
|
||||||
|
if (t->event == TT_OUTPUT) {
|
||||||
|
xmlNewProp(trig, (const xmlChar *)("event"), (const xmlChar *)("world"));
|
||||||
|
} else {
|
||||||
|
xmlNewProp(trig, (const xmlChar *)("event"), (const xmlChar *)("player"));
|
||||||
|
}
|
||||||
|
|
||||||
|
gm_trigger_rules_xml(t, trig);
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlSaveFormatFileEnc(trg->priv->path, doc, "UTF-8", 1);
|
||||||
|
xmlFreeDoc(doc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gm_triggers_save_as(GmTriggers *trg, const gchar *path) {
|
||||||
|
g_free(trg->priv->path);
|
||||||
|
trg->priv->path = g_strdup(path);
|
||||||
|
gm_triggers_save(trg);
|
||||||
|
}
|
||||||
|
|
||||||
|
GmTriggers *
|
||||||
|
gm_triggers_dup(GmTriggers *source) {
|
||||||
|
GmTriggers *trg = GM_TRIGGERS(g_object_new(GM_TYPE_TRIGGERS, NULL));
|
||||||
|
GList *item;
|
||||||
|
|
||||||
|
for (item = source->priv->triggers; item; item = item->next) {
|
||||||
|
trg->priv->triggers = g_list_append(trg->priv->triggers,
|
||||||
|
gm_trigger_dup((GmTrigger *)(item->data)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return trg;
|
||||||
|
}
|
||||||
|
|
||||||
|
const GList *
|
||||||
|
gm_triggers_list(GmTriggers *trg) {
|
||||||
|
return trg->priv->triggers;
|
||||||
|
}
|
|
@ -0,0 +1,118 @@
|
||||||
|
#ifndef __GM_TRIGGERS_H__
|
||||||
|
#define __GM_TRIGGERS_H__
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
#include <glib-object.h>
|
||||||
|
#include <regex.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Type checking and casting macros
|
||||||
|
*/
|
||||||
|
#define GM_TYPE_TRIGGERS (gm_triggers_get_type())
|
||||||
|
#define GM_TRIGGERS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_TRIGGERS, GmTriggers))
|
||||||
|
#define GM_TRIGGERS_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GM_TYPE_TRIGGERS, GmTriggers const))
|
||||||
|
#define GM_TRIGGERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GM_TYPE_TRIGGERS, GmTriggersClass))
|
||||||
|
#define GM_IS_TRIGGERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GM_TYPE_TRIGGERS))
|
||||||
|
#define GM_IS_TRIGGERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_TYPE_TRIGGERS))
|
||||||
|
#define GM_TRIGGERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GM_TYPE_TRIGGERS, GmTriggersClass))
|
||||||
|
|
||||||
|
/* Private structure type */
|
||||||
|
typedef struct _GmTriggersPrivate GmTriggersPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Main object structure
|
||||||
|
*/
|
||||||
|
typedef struct _GmTriggers GmTriggers;
|
||||||
|
|
||||||
|
struct _GmTriggers {
|
||||||
|
GObject object;
|
||||||
|
|
||||||
|
/*< private > */
|
||||||
|
GmTriggersPrivate *priv;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class definition
|
||||||
|
*/
|
||||||
|
typedef struct _GmTriggersClass GmTriggersClass;
|
||||||
|
|
||||||
|
struct _GmTriggersClass {
|
||||||
|
GObjectClass parent_class;
|
||||||
|
|
||||||
|
/* Signals */
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef enum _GmTriggerType {
|
||||||
|
TT_OUTPUT = 0,
|
||||||
|
TT_USERS
|
||||||
|
} GmTriggerType;
|
||||||
|
|
||||||
|
typedef enum _GmTriggerConditionType {
|
||||||
|
TCT_CONTAINS = 0,
|
||||||
|
TCT_NOT_CONTAINS,
|
||||||
|
TCT_BEGINS,
|
||||||
|
TCT_NOT_BEGINS,
|
||||||
|
TCT_ENDS,
|
||||||
|
TCT_NOT_ENDS,
|
||||||
|
TCT_MATCHES,
|
||||||
|
TCT_NOT_MATCHES,
|
||||||
|
TCT_USER_ONLINE,
|
||||||
|
TCT_USER_OFFLINE,
|
||||||
|
TCT_USER_IDLE,
|
||||||
|
TCT_USER_IDLE_OFF,
|
||||||
|
TCT_USER_AWAY,
|
||||||
|
TCT_USER_AWAY_OFF
|
||||||
|
} GmTriggerConditionType;
|
||||||
|
|
||||||
|
typedef enum _GmTriggerActionType {
|
||||||
|
TAT_HIGHLIGHT_LINE = 0,
|
||||||
|
TAT_HIGHLIGHT_MATCH,
|
||||||
|
TAT_BEEP,
|
||||||
|
TAT_PLAY_SOUND,
|
||||||
|
TAT_NOTIFY,
|
||||||
|
TAT_RUN_SCRIPT,
|
||||||
|
TAT_RUN
|
||||||
|
} GmTriggerActionType;
|
||||||
|
|
||||||
|
typedef struct _GmTriggerData {
|
||||||
|
gint type;
|
||||||
|
gchar *data;
|
||||||
|
regex_t expr;
|
||||||
|
} GmTriggerData;
|
||||||
|
|
||||||
|
typedef struct _GmTrigger {
|
||||||
|
gchar *name;
|
||||||
|
GmTriggerType event;
|
||||||
|
|
||||||
|
GList *conditions;
|
||||||
|
GList *actions;
|
||||||
|
} GmTrigger;
|
||||||
|
|
||||||
|
GType gm_triggers_get_type(void) G_GNUC_CONST;
|
||||||
|
GmTriggers *gm_triggers_new(void);
|
||||||
|
GmTriggers *gm_triggers_new_from_file(gchar *filename);
|
||||||
|
void gm_triggers_save(GmTriggers *triggers);
|
||||||
|
void gm_triggers_save_as(GmTriggers *trg, const gchar *path);
|
||||||
|
void gm_triggers_set_path(GmTriggers *trg, gchar *path);
|
||||||
|
GmTriggers *gm_triggers_dup(GmTriggers *source);
|
||||||
|
const GList *gm_triggers_list(GmTriggers *trg);
|
||||||
|
void gm_triggers_add(GmTriggers *trg, GmTrigger *t);
|
||||||
|
void gm_triggers_clear(GmTriggers *trg);
|
||||||
|
|
||||||
|
GmTrigger *gm_trigger_new();
|
||||||
|
void gm_trigger_free(GmTrigger *trigger);
|
||||||
|
GmTrigger *gm_trigger_dup(GmTrigger *source);
|
||||||
|
void gm_trigger_set_name(GmTrigger *trigger, const gchar *name);
|
||||||
|
void gm_trigger_free_list(GList *list);
|
||||||
|
void gm_trigger_add_condition(GmTrigger *trigger, GmTriggerData *condition);
|
||||||
|
void gm_trigger_add_action(GmTrigger *trigger, GmTriggerData *action);
|
||||||
|
void gm_trigger_set_conditions(GmTrigger *trigger, GList *conditions);
|
||||||
|
void gm_trigger_set_actions(GmTrigger *trigger, GList *actions);
|
||||||
|
|
||||||
|
GmTriggerData *gm_trigger_data_new(gint type, gchar *data);
|
||||||
|
void gm_trigger_data_free(GmTriggerData *tdata);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
#endif /* __GM_TRIGGERS_H__ */
|
|
@ -0,0 +1,77 @@
|
||||||
|
#ifndef __GM_UI_H__
|
||||||
|
#define __GM_UI_H__
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
#include "gm-app-view.h"
|
||||||
|
#include "gm-support.h"
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
|
static const GtkActionEntry gm_sensitive_menu_entries[] =
|
||||||
|
{
|
||||||
|
/* Toplevel */
|
||||||
|
{"World", NULL, N_("_World")},
|
||||||
|
{"Edit", NULL, N_("_Edit")},
|
||||||
|
{"View", NULL, N_("_View")},
|
||||||
|
{"Help", NULL, N_("_Help")},
|
||||||
|
|
||||||
|
/* World menu */
|
||||||
|
{"WorldNew", GTK_STOCK_NEW, N_("New World..."), "<control>N",
|
||||||
|
N_("Create a new world"), G_CALLBACK(on_gm_app_view_world_new)},
|
||||||
|
{"WorldQuit", GTK_STOCK_QUIT, NULL, NULL,
|
||||||
|
N_("Quit the program"), G_CALLBACK(on_gm_app_view_world_quit)},
|
||||||
|
|
||||||
|
/* Edit menu */
|
||||||
|
{"EditWorlds", NULL, N_("Worlds..."), "<control>L",
|
||||||
|
N_("Edit worlds"), G_CALLBACK(on_gm_app_view_edit_worlds)},
|
||||||
|
{"EditPreferences", GTK_STOCK_PREFERENCES, NULL, NULL,
|
||||||
|
N_("Configure the application"),
|
||||||
|
G_CALLBACK(on_gm_app_view_edit_preferences)},
|
||||||
|
|
||||||
|
/* View menu */
|
||||||
|
{"ViewMcp", NULL, N_("MCP"), NULL,
|
||||||
|
N_("View MCP console"), G_CALLBACK(on_gm_app_view_view_mcp)},
|
||||||
|
{"ViewScripts", NULL, N_("Scripts"), NULL,
|
||||||
|
N_("View scripts"), G_CALLBACK(on_gm_app_view_view_scripts)},
|
||||||
|
|
||||||
|
/* Help menu */
|
||||||
|
{"HelpAbout", GTK_STOCK_ABOUT, NULL, NULL,
|
||||||
|
N_("About this application"), G_CALLBACK(on_gm_app_view_help_about)}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const GtkActionEntry gm_menu_entries[] =
|
||||||
|
{
|
||||||
|
/* File menu */
|
||||||
|
{"WorldConnect", GTK_STOCK_NETWORK, N_("Connect"), "<control><shift>C",
|
||||||
|
N_("Connect or disconnect the current world"),
|
||||||
|
G_CALLBACK(on_gm_app_view_world_connect)},
|
||||||
|
{"WorldClose", GTK_STOCK_CLOSE, NULL, NULL,
|
||||||
|
N_("Close current world"), G_CALLBACK(on_gm_app_view_world_close)},
|
||||||
|
{"WorldLogs", GTK_STOCK_FILE, N_("Logs"), NULL,
|
||||||
|
N_("View current world logs"), G_CALLBACK(on_gm_app_view_world_logs)},
|
||||||
|
{"WorldInfo", GTK_STOCK_ABOUT, N_("In_fo"), NULL,
|
||||||
|
N_("View current world info"), G_CALLBACK(on_gm_app_view_world_info)},
|
||||||
|
|
||||||
|
/* Edit menu */
|
||||||
|
{"EditCut", GTK_STOCK_CUT, NULL, "<control>X",
|
||||||
|
N_("Cut the selection"), G_CALLBACK(on_gm_app_view_edit_cut)},
|
||||||
|
{"EditCopy", GTK_STOCK_COPY, NULL, "<control>C",
|
||||||
|
N_("Copy the selection"), G_CALLBACK(on_gm_app_view_edit_copy)},
|
||||||
|
{"EditPaste", GTK_STOCK_PASTE, NULL, "<control>V",
|
||||||
|
N_("Paste the clipboard"), G_CALLBACK(on_gm_app_view_edit_paste)},
|
||||||
|
{"EditWorld", NULL, N_("Current world..."), "<control>E",
|
||||||
|
N_("Edit the current world"), G_CALLBACK(on_gm_app_view_edit_world)},
|
||||||
|
{"EditFind", GTK_STOCK_FIND, NULL, "<control>F",
|
||||||
|
N_("Find text"), G_CALLBACK(on_gm_app_view_edit_find)},
|
||||||
|
{"EditFindNext", GTK_STOCK_FIND, N_("Find next"), "<control>G",
|
||||||
|
N_("Find next occurence"),
|
||||||
|
G_CALLBACK(on_gm_app_view_edit_find_next)},
|
||||||
|
};
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __GEDIT_UI_H__ */
|