* all:
authorDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Tue, 28 Nov 2006 16:13:42 +0000 (16:13 +0000)
committerDirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
Tue, 28 Nov 2006 16:13:42 +0000 (16:13 +0000)
  - re-enable maemo support. so far, this means the changes in the
    autoconf system, and some conditionals (ie. tny_maemo_device instead of
    tny_gnome_device), and some de-activating stuff like gtkassistant

the src/maemo/ dir a copy of src/gtk/ with some minor changes, but will
    be 'maemofied'. it compiles, it runs, but there are still some problems

pmo-trunk-r496

97 files changed:
COPYING
configure.ac
src/Makefile.am
src/maemo/Makefile.am [new file with mode: 0644]
src/maemo/modest-account-assistant.c [new file with mode: 0644]
src/maemo/modest-account-assistant.h [new file with mode: 0644]
src/maemo/modest-account-view-window.c [new file with mode: 0644]
src/maemo/modest-account-view-window.h [new file with mode: 0644]
src/maemo/modest-edit-msg-window.c [new file with mode: 0644]
src/maemo/modest-edit-msg-window.h [new file with mode: 0644]
src/maemo/modest-icon-names.h [new file with mode: 0644]
src/maemo/modest-main-window.c [new file with mode: 0644]
src/maemo/modest-main-window.h [new file with mode: 0644]
src/maemo/modest-store-widget.c [new file with mode: 0644]
src/maemo/modest-store-widget.h [new file with mode: 0644]
src/maemo/modest-transport-widget.c [new file with mode: 0644]
src/maemo/modest-transport-widget.h [new file with mode: 0644]
src/maemo/modest-ui.c [new file with mode: 0644]
src/maemo/pixmaps/back.svg [new file with mode: 0644]
src/maemo/pixmaps/edit-delete.svg [new file with mode: 0644]
src/maemo/pixmaps/folder-closed.png [new file with mode: 0644]
src/maemo/pixmaps/folder-open.png [new file with mode: 0644]
src/maemo/pixmaps/forward.svg [new file with mode: 0644]
src/maemo/pixmaps/gnome-stock-mail-fwd.svg [new file with mode: 0644]
src/maemo/pixmaps/gnome-stock-mail-new.svg [new file with mode: 0644]
src/maemo/pixmaps/gnome-stock-mail-rpl.svg [new file with mode: 0644]
src/maemo/pixmaps/go-next.svg [new file with mode: 0644]
src/maemo/pixmaps/go-previous.svg [new file with mode: 0644]
src/maemo/pixmaps/gtk-refresh.svg [new file with mode: 0644]
src/maemo/pixmaps/internet-mail.svg [new file with mode: 0644]
src/maemo/pixmaps/mail-forward.svg [new file with mode: 0644]
src/maemo/pixmaps/mail-mark-junk.svg [new file with mode: 0644]
src/maemo/pixmaps/mail-message-new.svg [new file with mode: 0644]
src/maemo/pixmaps/mail-reply-all.svg [new file with mode: 0644]
src/maemo/pixmaps/mail-reply-sender.svg [new file with mode: 0644]
src/maemo/pixmaps/process-stop.svg [new file with mode: 0644]
src/maemo/pixmaps/qgn_addr_icon_user_group.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_gene_attacpap.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_gene_fldr_clp.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_gene_fldr_cls.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_gene_fldr_exp.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_gene_fldr_opn.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_drafts.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_editor.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_encrypted.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_encrypted_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_encrypted_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_high_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_low_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_signed.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_signed_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_signed_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread_encrypted.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread_encrypted_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread_encrypted_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread_signed.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread_signed_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_hdr_unread_signed_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_inbox.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_deleted.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_encrypted_read.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_encrypted_read_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_encrypted_read_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_encrypted_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_encrypted_unread_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_encrypted_unread_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_high_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_low_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_signed_read.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_signed_read_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_signed_read_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_signed_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_signed_unread_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_signed_unread_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_mail_unread.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_outbox.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_sent.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messagin_viewer.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messaging_high.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_list_messaging_low.png [new file with mode: 0644]
src/maemo/pixmaps/qgn_widg_datedit.png [new file with mode: 0644]
src/maemo/pixmaps/stock_stop.svg [new file with mode: 0644]
src/maemo/pixmaps/view-refresh.svg [new file with mode: 0644]
src/modest-main.c
src/modest-tny-platform-factory.c
src/modest-tny-platform-factory.h
src/widgets/Makefile.am
src/widgets/modest-combo-box.c
tests/Makefile.am

diff --git a/COPYING b/COPYING
index 042dc50..d60c31a 100644 (file)
--- a/COPYING
+++ b/COPYING
-Copyright (c) 2006, Nokia Corporation
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in the
-  documentation and/or other materials provided with the distribution.
-* Neither the name of the Nokia Corporation nor the names of its
-  contributors may be used to endorse or promote products derived from
-  this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+                   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.
+\f
+                   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.)
+\f
+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.
+\f
+  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.
+\f
+  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
+\f
+           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.
index b2c1766..dfef1a0 100644 (file)
@@ -1,5 +1,5 @@
 dnl configure.ac for modest 
-dnl Time-stamp: <2006-08-08 12:21:25 (djcb)>
+dnl Time-stamp: <2006-11-28 17:26:13 (djcb)>
 dnl written by Dirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>
 
 AC_INIT([modest],[0.0.1],[http://maemo.org])
@@ -42,39 +42,41 @@ AC_SUBST(MODEST_GSTUFF_LIBS)
 
 dnl dnl now, determine what to build
 AC_MSG_NOTICE([Determining what platform to build])
-dnl PKG_CHECK_MODULES(MODEST_LIBTINYMAIL_MAEMO,libosso,[with_platform=hildon],true)
+PKG_CHECK_MODULES(MODEST_LIBTINYMAIL_MAEMO,libosso,[with_platform=maemo],true)
+
 
 AC_ARG_WITH(platform,
 [--with-platform=gtk           platform to build for [gtk]],
 [case "${with_platform}" in
-       gtk)    MODEST_PLATFORM_DIR=gtk;;
-       hildon) MODEST_PLATFORM_DIR=hildon;;
-       *)      MODEST_PLATFORM_DIR=${with_platform}
-esac], [MODEST_PLATFORM_DIR=gtk
+       gtk)    MODEST_PLATFORM=gtk;;
+       maemo) MODEST_PLATFORM=maemo;;
+       *)      MODEST_PLATFORM=${with_platform}
+esac], [MODEST_PLATFORM=gtk
                with_platform=gtk])
-AC_SUBST(MODEST_PLATFORM_DIR)
-       
-dnl tempororily change hildon into gtk...
-if test "x$with_platform" = "xhildon"; then
-   AC_MSG_WARN([Hildon frontend is currently disabled])
-   with_platform="gtk"
-fi
+AC_SUBST(MODEST_PLATFORM)
 
-if test "x$with_platform" = "xhildon"; then
-   PKG_CHECK_MODULES(MODEST_LIBTINYMAIL_MAEMO,libtinymail-maemo-1.0 hildon-libs hildon-lgpl libosso)
+
+if test "x$with_platform" = "xmaemo"; then
+   PKG_CHECK_MODULES(MODEST_LIBTINYMAIL_MAEMO,libtinymail-maemo-1.0 hildon-libs libosso)
    AC_SUBST(MODEST_LIBTINYMAIL_MAEMO_CFLAGS)
    AC_SUBST(MODEST_LIBTINYMAIL_MAEMO_LIBS) 
+   MODEST_PLATFORM_ID=2
 else
    PKG_CHECK_MODULES(MODEST_LIBTINYMAIL_GNOME_DESKTOP,libtinymail-gnome-desktop-1.0 libnm_glib glib-2.0 >= 2.8)
    AC_SUBST(MODEST_LIBTINYMAIL_GNOME_DESKTOP_CFLAGS)
    AC_SUBST(MODEST_LIBTINYMAIL_GNOME_DESKTOP_LIBS)
+   MODEST_PLATFORM_ID=1
 fi
 
+dnl 1==>gtk, 2==>maemo
+AC_SUBST(MODEST_PLATFORM_ID)
+
 AC_OUTPUT([
 po/Makefile.in
 Makefile
 src/Makefile
 src/gtk/Makefile
+src/maemo/Makefile
 src/widgets/Makefile
 docs/Makefile
 docs/reference/Makefile
index c79b320..181ef2c 100644 (file)
@@ -1,16 +1,18 @@
 #
 # Makefile.am
-# Time-stamp: <2006-11-26 19:23:53 (djcb)>
-SUBDIRS=$(MODEST_PLATFORM_DIR) widgets
+# Time-stamp: <2006-11-28 17:42:40 (djcb)>
+SUBDIRS=$(MODEST_PLATFORM) widgets
 DIST_SUBDIRS = widgets gtk
 
 INCLUDES=\
        $(MODEST_GSTUFF_CFLAGS)\
        $(MODEST_LIBTINYMAIL_GNOME_DESKTOP_CFLAGS) \
        $(MODEST_LIBTINYMAIL_MAEMO_CFLAGS) \
-       -I$(MODEST_PLATFORM_DIR) \
+       -I$(MODEST_PLATFORM) \
        -DPREFIX=\"@prefix@\" \
-       -DMODESTLOCALEDIR=\""$(modestlocaledir)"\"
+       -DMODESTLOCALEDIR=\""$(modestlocaledir)"\" \
+       -DMODEST_PLATFORM=\"$(MODEST_PLATFORM)\" \
+       -DMODEST_PLATFORM_ID=$(MODEST_PLATFORM_ID)
 
 BUILT_SOURCES = modest-marshal.c modest-marshal.h
 
@@ -64,7 +66,7 @@ modest_LDADD =                                                \
        $(MODEST_GSTUFF_LIBS)                           \
        $(MODEST_LIBTINYMAIL_GNOME_DESKTOP_LIBS)        \
        $(MODEST_LIBTINYMAIL_MAEMO_LIBS)                \
-       $(MODEST_PLATFORM_DIR)/libmodest-ui.la          \
+       $(MODEST_PLATFORM)/libmodest-ui.la              \
        widgets/libmodest-widgets.la                    
 
 EXTRA_DIST=modest-marshal.list
diff --git a/src/maemo/Makefile.am b/src/maemo/Makefile.am
new file mode 100644 (file)
index 0000000..2c5db65
--- /dev/null
@@ -0,0 +1,47 @@
+#
+# Makefile.am
+# Time-stamp: <2006-07-29 20:47:31 (djcb)>
+#
+#
+# use Automake 'trick' ==> convenience static libraries, which
+# won't be installed, just for linking
+#
+INCLUDES=\
+       $(MODEST_GSTUFF_CFLAGS) \
+       $(MODEST_LIBTINYMAIL_GNOME_DESKTOP_CFLAGS) \
+       -I ${top_srcdir}/src  \
+       -DPREFIX=\"@prefix@\" \
+       -Wall
+
+noinst_LTLIBRARIES=\
+       libmodest-ui.la
+
+PIXMAP_FILES=\
+       pixmaps/*.png \
+       pixmaps/*.svg
+
+libmodest_ui_la_SOURCES=              \
+       modest-ui.c                   \
+       modest-icon-names.h           \
+       modest-main-window.h          \
+       modest-main-window.c          \
+       modest-account-view-window.c  \
+       modest-account-view-window.h  \
+       modest-edit-msg-window.c      \
+       modest-edit-msg-window.h      \
+       modest-transport-widget.c     \
+       modest-transport-widget.h     \
+       modest-store-widget.c         \
+       modest-store-widget.h 
+
+#      modest-account-assistant.c    
+#      modest-account-assistant.h    
+
+LDADD = \
+       $(MODEST_GSTUFF_LIBS) \
+       $(MODEST_LIBTINYMAIL_GNOME_DESKTOP_LIBS)
+
+EXTRA_DIST=pixmaps/*
+
+pixmapdir = $(prefix)/share/modest/pixmaps
+pixmap_DATA = $(PIXMAP_FILES)
diff --git a/src/maemo/modest-account-assistant.c b/src/maemo/modest-account-assistant.c
new file mode 100644 (file)
index 0000000..75fd1fd
--- /dev/null
@@ -0,0 +1,602 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <glib/gi18n.h>
+#include "modest-account-assistant.h"
+#include "modest-store-widget.h"
+#include "modest-transport-widget.h"
+
+#include <string.h>
+
+/* 'private'/'protected' functions */
+static void       modest_account_assistant_class_init    (ModestAccountAssistantClass *klass);
+static void       modest_account_assistant_init          (ModestAccountAssistant *obj);
+static void       modest_account_assistant_finalize      (GObject *obj);
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+typedef struct _ModestAccountAssistantPrivate ModestAccountAssistantPrivate;
+struct _ModestAccountAssistantPrivate {
+
+       ModestWidgetFactory *factory;
+       ModestAccountMgr *account_mgr;
+
+       GtkWidget *account_name;
+       GtkWidget *fullname;
+       GtkWidget *email;
+       
+       GtkWidget *store_widget;
+       GtkWidget *transport_widget;
+
+       GtkWidget *transport_holder;
+       GtkWidget *store_holder;        
+};
+
+#define MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                                      MODEST_TYPE_ACCOUNT_ASSISTANT, \
+                                                      ModestAccountAssistantPrivate))
+/* globals */
+static GtkAssistantClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_account_assistant_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestAccountAssistantClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_account_assistant_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestAccountAssistant),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_account_assistant_init,
+                       NULL
+               };
+               my_type = g_type_register_static (GTK_TYPE_ASSISTANT,
+                                                 "ModestAccountAssistant",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_account_assistant_class_init (ModestAccountAssistantClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_account_assistant_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestAccountAssistantPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+
+
+static void
+add_intro_page (ModestAccountAssistant *assistant)
+{
+       GtkWidget *page, *label;
+       
+       page = gtk_vbox_new (FALSE, 6);
+       
+       label = gtk_label_new (
+               _("Welcome to the account assistant\n\n"
+                 "It will help to set up a new e-mail account\n"));
+       gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 6);
+       gtk_widget_show_all (page);
+       
+       gtk_assistant_append_page (GTK_ASSISTANT(assistant), page);
+               
+       gtk_assistant_set_page_title (GTK_ASSISTANT(assistant), page,
+                                     _("Modest Account Assistant"));
+       gtk_assistant_set_page_type (GTK_ASSISTANT(assistant), page,
+                                    GTK_ASSISTANT_PAGE_INTRO);
+       gtk_assistant_set_page_complete (GTK_ASSISTANT(assistant),
+                                        page, TRUE);
+}
+
+
+static void
+set_current_page_complete (ModestAccountAssistant *self, gboolean complete)
+{
+       GtkWidget *page;
+       gint pageno;
+
+       pageno = gtk_assistant_get_current_page (GTK_ASSISTANT(self));
+       page   = gtk_assistant_get_nth_page (GTK_ASSISTANT(self), pageno);
+
+       gtk_assistant_set_page_complete (GTK_ASSISTANT(self), page, complete);
+}
+
+
+static void
+identity_page_update_completeness (GtkEditable *editable,
+                                  ModestAccountAssistant *self)
+{
+       ModestAccountAssistantPrivate *priv;
+       const gchar *txt;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       txt = gtk_entry_get_text (GTK_ENTRY(priv->fullname));
+       if (!txt || strlen(txt) == 0) {
+               set_current_page_complete (self, FALSE);
+               return;
+       }
+
+       /* FIXME: regexp check for email address */
+       txt = gtk_entry_get_text (GTK_ENTRY(priv->email));
+       if (!txt || strlen(txt) == 0) {
+               set_current_page_complete (self, FALSE);
+               return;
+       }
+       set_current_page_complete (self, TRUE);
+}
+
+
+static void
+add_identity_page (ModestAccountAssistant *self)
+{
+       GtkWidget *page, *label, *table;
+       ModestAccountAssistantPrivate *priv;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       priv->fullname = gtk_entry_new_with_max_length (40);
+       priv->email    = gtk_entry_new_with_max_length (40);
+       
+       page = gtk_vbox_new (FALSE, 6);
+
+       label = gtk_label_new (
+               _("Please enter your name and your e-mail address below.\n\n"));
+       gtk_box_pack_start (GTK_BOX(page), label, FALSE, FALSE, 6);
+       
+       table = gtk_table_new (2,2, FALSE);
+       gtk_table_attach_defaults (GTK_TABLE(table),gtk_label_new (_("Full name")),
+                                  0,1,0,1);
+       gtk_table_attach_defaults (GTK_TABLE(table),gtk_label_new (_("E-mail address")),
+                                  0,1,1,2);
+       gtk_table_attach_defaults (GTK_TABLE(table),priv->fullname,
+                                  1,2,0,1);
+       gtk_table_attach_defaults (GTK_TABLE(table),priv->email,
+                                  1,2,1,2);
+
+       g_signal_connect (G_OBJECT(priv->fullname), "changed",
+                         G_CALLBACK(identity_page_update_completeness),
+                         self);
+       g_signal_connect (G_OBJECT(priv->email), "changed",
+                         G_CALLBACK(identity_page_update_completeness),
+                         self);
+       
+       gtk_box_pack_start (GTK_BOX(page), table, FALSE, FALSE, 6);
+       gtk_widget_show_all (page);
+       
+       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+       
+       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
+                                     _("Identity"));
+       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
+                                    GTK_ASSISTANT_PAGE_INTRO);
+       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
+                                        page, FALSE);
+}      
+
+
+static void
+on_receiving_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self)
+{
+       ModestAccountAssistantPrivate *priv;
+       gchar *chosen;
+       
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+       chosen = gtk_combo_box_get_active_text (GTK_COMBO_BOX(combo));
+
+       if (priv->store_widget)
+               gtk_container_remove (GTK_CONTAINER(priv->store_holder),
+                                     priv->store_widget);
+       
+       priv->store_widget = modest_store_widget_new (priv->factory, chosen);
+
+       gtk_container_add (GTK_CONTAINER(priv->store_holder),
+                          priv->store_widget);
+       
+       gtk_widget_show_all (priv->store_holder);
+       
+}      
+
+static void
+add_receiving_page (ModestAccountAssistant *self)
+{
+       GtkWidget *page, *box, *combo;
+
+       ModestAccountAssistantPrivate *priv;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);      
+       page = gtk_vbox_new (FALSE, 6);
+
+       gtk_box_pack_start (GTK_BOX(page),
+                           gtk_label_new (
+                                   _("Please select among the following options")),
+                           FALSE, FALSE, 6);
+       box = gtk_hbox_new (FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(box),
+                           gtk_label_new(_("Server type")),
+                           FALSE,FALSE,6);
+
+       combo = modest_widget_factory_get_combo_box (priv->factory,
+                                                    MODEST_COMBO_BOX_TYPE_STORE_PROTOS);
+       g_signal_connect (G_OBJECT(combo), "changed",
+                         G_CALLBACK(on_receiving_combo_box_changed), self);
+
+       gtk_box_pack_start (GTK_BOX(box), combo, FALSE,FALSE,6);
+       gtk_box_pack_start (GTK_BOX(page), box, FALSE,FALSE, 6);
+       
+       gtk_box_pack_start (GTK_BOX(page), gtk_hseparator_new(), FALSE, FALSE, 0);
+
+       priv->store_holder = gtk_hbox_new (FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(page), priv->store_holder,
+                           TRUE, TRUE, 0);
+       
+       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+               
+       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
+                                     _("Receiving mail"));
+       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
+                                    GTK_ASSISTANT_PAGE_INTRO);
+       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
+                                        page, TRUE);
+       gtk_widget_show_all (page);
+}
+
+
+
+
+static void
+on_sending_combo_box_changed (GtkComboBox *combo, ModestAccountAssistant *self)
+{
+       ModestAccountAssistantPrivate *priv;
+       gchar *chosen;
+       
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       chosen = gtk_combo_box_get_active_text (GTK_COMBO_BOX(combo));
+
+       if (priv->transport_widget)
+               gtk_container_remove (GTK_CONTAINER(priv->transport_holder),
+                                     priv->transport_widget);
+       
+       priv->transport_widget = modest_transport_widget_new (priv->factory,
+                                                             chosen);
+
+       gtk_container_add (GTK_CONTAINER(priv->transport_holder),
+                          priv->transport_widget);
+
+       gtk_widget_show_all (priv->transport_holder);
+}
+
+
+
+static void
+add_sending_page (ModestAccountAssistant *self)
+{
+       GtkWidget *page, *box, *combo;
+
+       ModestAccountAssistantPrivate *priv;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+       page = gtk_vbox_new (FALSE, 6);
+       
+       gtk_box_pack_start (GTK_BOX(page),
+                           gtk_label_new (
+                                   _("Please select among the following options")),
+                           FALSE, FALSE, 0);
+       box = gtk_hbox_new (FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(box),
+                           gtk_label_new(_("Server type")),
+                           FALSE,FALSE,0);
+
+       combo = modest_widget_factory_get_combo_box (priv->factory,
+                                                    MODEST_COMBO_BOX_TYPE_TRANSPORT_PROTOS);
+       g_signal_connect (G_OBJECT(combo), "changed",
+                         G_CALLBACK(on_sending_combo_box_changed), self);
+
+       gtk_box_pack_start (GTK_BOX(box), combo, FALSE,FALSE,0);
+       gtk_box_pack_start (GTK_BOX(page), box, FALSE,FALSE, 0);
+       
+       gtk_box_pack_start (GTK_BOX(page), gtk_hseparator_new(), FALSE, FALSE, 0);
+
+       priv->transport_holder = gtk_hbox_new (FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(page), priv->transport_holder,
+                           FALSE, FALSE, 0);
+       
+       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+               
+       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
+                                     _("Sending mail"));
+       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
+                                    GTK_ASSISTANT_PAGE_INTRO);
+       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
+                                        page, TRUE);
+       gtk_widget_show_all (page);
+}
+
+
+
+static void
+add_final_page (ModestAccountAssistant *self)
+{
+       GtkWidget *page, *box;
+       ModestAccountAssistantPrivate *priv;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+       page = gtk_vbox_new (FALSE, 6);
+       
+       gtk_box_pack_start (GTK_BOX(page),
+                           gtk_label_new (
+                                   _("We're almost done. Press 'Apply' to store this new account")),
+                           FALSE, FALSE, 6);
+       box = gtk_hbox_new (FALSE, 6);
+       priv->account_name =
+               gtk_entry_new_with_max_length (40);
+       gtk_entry_set_text (GTK_ENTRY(priv->account_name),
+                           gtk_entry_get_text(GTK_ENTRY(priv->email)));
+       gtk_box_pack_start (GTK_BOX(box),gtk_label_new(_("Account name:")),
+                           FALSE,FALSE,6);
+       gtk_box_pack_start (GTK_BOX(box),priv->account_name , FALSE,FALSE,6);
+       
+       gtk_box_pack_start (GTK_BOX(page), box, FALSE, FALSE, 6);
+       
+       gtk_assistant_append_page (GTK_ASSISTANT(self), page);
+               
+       gtk_assistant_set_page_title (GTK_ASSISTANT(self), page,
+                                     _("Account Management"));
+       gtk_assistant_set_page_type (GTK_ASSISTANT(self), page,
+                                    GTK_ASSISTANT_PAGE_CONFIRM);
+
+       gtk_assistant_set_page_complete (GTK_ASSISTANT(self),
+                                        page, TRUE);
+       gtk_widget_show_all (page);
+}
+       
+
+
+
+static void
+modest_account_assistant_init (ModestAccountAssistant *obj)
+{      
+       ModestAccountAssistantPrivate *priv;
+               
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);       
+       priv->factory           = NULL;
+       priv->account_mgr       = NULL;
+
+       priv->store_widget      = NULL;
+       priv->transport_widget  = NULL;
+}
+
+static void
+modest_account_assistant_finalize (GObject *obj)
+{
+       ModestAccountAssistantPrivate *priv;
+               
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(obj);
+
+       if (priv->factory) {
+               g_object_unref (G_OBJECT(priv->factory));
+               priv->factory = NULL;
+       }
+       
+       if (priv->account_mgr) {
+               g_object_unref (G_OBJECT(priv->account_mgr));
+               priv->account_mgr = NULL;
+       }
+
+
+
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+static void
+on_cancel (ModestAccountAssistant *self, gpointer user_data)
+{
+       GtkWidget *label;
+       GtkWidget *dialog;
+       int response;
+       
+       label = gtk_label_new (_("Are you sure you want to cancel\n"
+                                "setting up a new account?"));
+       
+       dialog = gtk_dialog_new_with_buttons (_("Cancel"),
+                                             GTK_WINDOW(self),
+                                             GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
+                                             GTK_STOCK_YES, GTK_RESPONSE_ACCEPT,
+                                             GTK_STOCK_NO,  GTK_RESPONSE_CANCEL,
+                                             NULL);
+       
+       gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox),
+                           label, FALSE, FALSE, 6);
+
+       gtk_widget_show_all ((GTK_DIALOG(dialog)->vbox));
+       
+       gtk_window_set_resizable (GTK_WINDOW(dialog), FALSE);
+       
+       response = gtk_dialog_run (GTK_DIALOG(dialog));
+       gtk_widget_destroy (dialog);
+
+       switch (response) {
+       case GTK_RESPONSE_ACCEPT:
+               /* close the assistant */
+               gtk_widget_destroy (GTK_WIDGET(self));
+               break;
+       case GTK_RESPONSE_CANCEL:
+               /* don't do anything */
+               break;
+       default: g_assert_not_reached ();
+
+       };                           
+}
+
+static const gchar*
+get_account_name (ModestAccountAssistant *self)
+{
+       ModestAccountAssistantPrivate *priv;
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       return gtk_entry_get_text (GTK_ENTRY(priv->account_name));
+}
+
+static const gchar*
+get_fullname (ModestAccountAssistant *self)
+{
+       ModestAccountAssistantPrivate *priv;
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       return gtk_entry_get_text (GTK_ENTRY(priv->fullname));
+}
+
+
+
+static const gchar*
+get_email (ModestAccountAssistant *self)
+{
+       ModestAccountAssistantPrivate *priv;
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       return gtk_entry_get_text (GTK_ENTRY(priv->email));
+}
+
+
+
+static void
+on_apply (ModestAccountAssistant *self, gpointer user_data)
+{
+       ModestAccountAssistantPrivate *priv;
+       gchar *store_name;
+       const gchar *account_name;
+       ModestStoreWidget *store;
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+
+       /* create account */
+
+       /* create server account -> store */
+       store = MODEST_STORE_WIDGET(priv->store_widget);
+       store_name = g_strdup_printf ("%s:%s@%s",
+                                     modest_store_widget_get_proto (store),
+                                     modest_store_widget_get_username (store),
+                                     modest_store_widget_get_servername (store));
+       
+       modest_account_mgr_add_server_account (priv->account_mgr,
+                                               store_name,
+                                               modest_store_widget_get_servername (store),
+                                               modest_store_widget_get_username (store),
+                                               NULL,
+                                               modest_store_widget_get_proto (store));
+
+       /* create server account -> transport */
+       account_name = get_account_name (self);
+       modest_account_mgr_add_account (priv->account_mgr,
+                                       account_name,
+                                       store_name,
+                                       NULL, NULL);
+       modest_account_mgr_set_string (priv->account_mgr,
+                                      account_name,
+                                      MODEST_ACCOUNT_FULLNAME,
+                                      get_fullname(self), FALSE, NULL);
+       modest_account_mgr_set_string (priv->account_mgr,
+                                      account_name,
+                                      MODEST_ACCOUNT_EMAIL,
+                                      get_email(self), FALSE, NULL);
+       
+       g_free (store_name);
+}
+
+
+
+GtkWidget*
+modest_account_assistant_new (ModestAccountMgr *account_mgr, ModestWidgetFactory *factory)
+{
+       GObject *obj;
+       ModestAccountAssistant *self;
+       ModestAccountAssistantPrivate *priv;
+               
+       g_return_val_if_fail (factory, NULL);
+       g_return_val_if_fail (account_mgr, NULL);
+       
+       obj  = g_object_new(MODEST_TYPE_ACCOUNT_ASSISTANT, NULL);
+       self = MODEST_ACCOUNT_ASSISTANT(obj);
+
+       priv = MODEST_ACCOUNT_ASSISTANT_GET_PRIVATE(self);
+       
+       g_object_ref (factory);
+       priv->factory = factory;
+       
+       g_object_ref (account_mgr);
+       priv->account_mgr = account_mgr;
+
+       add_intro_page (self);
+       add_identity_page (self); 
+       add_receiving_page (self); 
+       add_sending_page (self);
+       add_final_page (self);
+
+       gtk_assistant_set_current_page (GTK_ASSISTANT(self), 0);
+       gtk_window_set_title (GTK_WINDOW(self),
+                             _("Modest Account Wizard"));
+       gtk_window_set_resizable (GTK_WINDOW(self), TRUE);      
+       gtk_window_set_default_size (GTK_WINDOW(self), 400, 400);
+       
+       gtk_window_set_modal (GTK_WINDOW(self), TRUE);
+
+       g_signal_connect (G_OBJECT(self), "apply",
+                         G_CALLBACK(on_apply), NULL);
+       g_signal_connect (G_OBJECT(self), "cancel",
+                         G_CALLBACK(on_cancel), NULL);
+
+       return GTK_WIDGET(self);
+}
diff --git a/src/maemo/modest-account-assistant.h b/src/maemo/modest-account-assistant.h
new file mode 100644 (file)
index 0000000..bc29ce3
--- /dev/null
@@ -0,0 +1,71 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __MODEST_ACCOUNT_ASSISTANT_H__
+#define __MODEST_ACCOUNT_ASSISTANT_H__
+
+#include <gtk/gtk.h>
+#include <modest-widget-factory.h>
+#include <modest-account-mgr.h>
+
+G_BEGIN_DECLS
+
+/* standard convenience macros */
+#define MODEST_TYPE_ACCOUNT_ASSISTANT             (modest_account_assistant_get_type())
+#define MODEST_ACCOUNT_ASSISTANT(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_ACCOUNT_ASSISTANT,ModestAccountAssistant))
+#define MODEST_ACCOUNT_ASSISTANT_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_ACCOUNT_ASSISTANT,ModestAccountAssistantClass))
+#define MODEST_IS_ACCOUNT_ASSISTANT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_ACCOUNT_ASSISTANT))
+#define MODEST_IS_ACCOUNT_ASSISTANT_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_ACCOUNT_ASSISTANT))
+#define MODEST_ACCOUNT_ASSISTANT_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_ACCOUNT_ASSISTANT,ModestAccountAssistantClass))
+
+typedef struct _ModestAccountAssistant      ModestAccountAssistant;
+typedef struct _ModestAccountAssistantClass ModestAccountAssistantClass;
+
+struct _ModestAccountAssistant {
+        GtkAssistant parent;
+       /* insert public members, if any */
+};
+
+struct _ModestAccountAssistantClass {
+       GtkAssistantClass parent_class;
+       /* insert signal callback declarations, eg. */
+       /* void (* my_event) (ModestAccountAssistant* obj); */
+};
+
+/* member functions */
+GType        modest_account_assistant_get_type    (void) G_GNUC_CONST;
+
+GtkWidget*    modest_account_assistant_new        (ModestAccountMgr* account_mgr,
+                                                  ModestWidgetFactory *factory);
+
+
+G_END_DECLS
+
+#endif /* __MODEST_ACCOUNT_ASSISTANT_H__ */
+
diff --git a/src/maemo/modest-account-view-window.c b/src/maemo/modest-account-view-window.c
new file mode 100644 (file)
index 0000000..b24cbf8
--- /dev/null
@@ -0,0 +1,304 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <glib/gi18n.h>
+#include "modest-account-view-window.h"
+//#include "modest-account-assistant.h"
+#include "modest-tny-platform-factory.h"
+
+/* 'private'/'protected' functions */
+static void                            modest_account_view_window_class_init   (ModestAccountViewWindowClass *klass);
+static void                            modest_account_view_window_init         (ModestAccountViewWindow *obj);
+static void                            modest_account_view_window_finalize     (GObject *obj);
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+
+typedef struct _ModestAccountViewWindowPrivate ModestAccountViewWindowPrivate;
+struct _ModestAccountViewWindowPrivate {
+       ModestWidgetFactory *widget_factory;
+       GtkWidget           *edit_button, *remove_button;
+};
+#define MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                                        MODEST_TYPE_ACCOUNT_VIEW_WINDOW, \
+                                                        ModestAccountViewWindowPrivate))
+/* globals */
+static GtkWindowClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_account_view_window_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestAccountViewWindowClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_account_view_window_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestAccountViewWindow),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_account_view_window_init,
+                       NULL
+               };
+               my_type = g_type_register_static (GTK_TYPE_WINDOW,
+                                                 "ModestAccountViewWindow",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_account_view_window_class_init (ModestAccountViewWindowClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_account_view_window_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestAccountViewWindowPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+static void
+modest_account_view_window_init (ModestAccountViewWindow *obj)
+{
+       ModestAccountViewWindowPrivate *priv;
+               
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(obj);
+
+       priv->widget_factory = NULL;
+}
+
+static void
+modest_account_view_window_finalize (GObject *obj)
+{
+       ModestAccountViewWindowPrivate *priv;
+               
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(obj);
+
+       if (priv->widget_factory) {
+               g_object_unref (G_OBJECT(priv->widget_factory));
+               priv->widget_factory = NULL;
+       }
+
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+
+static void
+on_selection_changed (GtkTreeSelection *sel, ModestAccountViewWindow *self)
+{
+       ModestAccountViewWindowPrivate *priv;
+       GtkTreeModel                   *model;
+       GtkTreeIter                    iter;
+       gboolean                       has_selection;
+
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+
+       has_selection =
+               gtk_tree_selection_get_selected (sel, &model, &iter);
+
+       gtk_widget_set_sensitive (priv->edit_button, has_selection);
+       gtk_widget_set_sensitive (priv->remove_button, has_selection);  
+}
+
+
+
+static void
+on_remove_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
+{
+       g_message (__FUNCTION__);
+}
+
+static void
+on_edit_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
+{
+       g_message (__FUNCTION__);
+}
+
+static void
+on_add_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
+{
+       GtkWidget *assistant;
+       ModestAccountViewWindowPrivate *priv;
+       TnyPlatformFactory *fact;
+       ModestAccountMgr *account_mgr;
+       
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+       fact = modest_tny_platform_factory_get_instance ();
+       account_mgr = modest_tny_platform_factory_get_modest_account_mgr_instance (fact);
+/* FIXME:
+       assistant = modest_account_assistant_new (account_mgr,
+                                                 priv->widget_factory);
+       gtk_window_set_transient_for (GTK_WINDOW(assistant),
+                                     GTK_WINDOW(self));
+
+       gtk_widget_show (GTK_WIDGET(assistant));
+*/
+}
+
+
+static void
+on_close_button_clicked (GtkWidget *button, ModestAccountViewWindow *self)
+{
+       gtk_widget_destroy (GTK_WIDGET(self));
+}
+
+
+
+static GtkWidget*
+button_box_new (ModestAccountViewWindow *self)
+{
+
+       GtkWidget *button_box;
+       GtkWidget *add_button, *remove_button, *edit_button;
+       ModestAccountViewWindowPrivate *priv;
+       
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+       
+       button_box   = gtk_vbutton_box_new ();
+
+       add_button    = gtk_button_new_from_stock(GTK_STOCK_ADD);
+       remove_button = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
+       edit_button   = gtk_button_new_from_stock(GTK_STOCK_EDIT);
+
+       g_signal_connect (G_OBJECT(add_button), "clicked",
+                         G_CALLBACK(on_add_button_clicked),
+                         self);
+       g_signal_connect (G_OBJECT(remove_button), "clicked",
+                         G_CALLBACK(on_remove_button_clicked),
+                         self);
+       g_signal_connect (G_OBJECT(edit_button), "clicked",
+                         G_CALLBACK(on_edit_button_clicked),
+                         self);
+
+       gtk_box_pack_start (GTK_BOX(button_box), add_button, FALSE, FALSE,2);
+       gtk_box_pack_start (GTK_BOX(button_box), remove_button, FALSE, FALSE,2);
+       gtk_box_pack_start (GTK_BOX(button_box), edit_button, FALSE, FALSE,2);
+
+       gtk_widget_set_sensitive (edit_button, FALSE);
+       gtk_widget_set_sensitive (remove_button, FALSE);        
+
+       /* remember these, so we can deactivate them when nothing is
+        * selected */
+       priv->remove_button = remove_button;
+       priv->edit_button   = edit_button;
+       
+       return button_box;
+}
+
+
+static GtkWidget*
+window_vbox_new (ModestAccountViewWindow *self)
+{
+       ModestAccountViewWindowPrivate *priv;
+       GtkTreeSelection *sel;
+       GtkWidget *main_hbox, *main_vbox, *button_box;
+       GtkWidget *close_button;
+       GtkWidget *close_hbox;
+       ModestAccountView *account_view;
+
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(self);
+
+       main_vbox     = gtk_vbox_new (FALSE, 6);
+       main_hbox     = gtk_hbox_new (FALSE, 6);
+       
+       account_view = modest_widget_factory_get_account_view (priv->widget_factory);
+       gtk_widget_set_size_request (GTK_WIDGET(account_view), 300, 400);
+
+       sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(account_view));
+       g_signal_connect (G_OBJECT(sel), "changed",  G_CALLBACK(on_selection_changed),
+                         self);
+       
+       button_box = button_box_new (self);
+       
+       gtk_box_pack_start (GTK_BOX(main_hbox), GTK_WIDGET(account_view), TRUE, TRUE, 2);
+       gtk_box_pack_start (GTK_BOX(main_hbox), button_box, FALSE, FALSE,2);
+
+       gtk_box_pack_start (GTK_BOX(main_vbox), main_hbox, TRUE, TRUE, 2);
+
+
+       close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+       g_signal_connect (G_OBJECT(close_button), "clicked",
+                         G_CALLBACK(on_close_button_clicked),
+                         self);
+       
+       close_hbox = gtk_hbox_new (FALSE, 2);
+       gtk_box_pack_end (GTK_BOX(close_hbox),
+                         close_button, FALSE, FALSE,2);
+       gtk_box_pack_end (GTK_BOX(main_vbox), close_hbox, FALSE, FALSE,2);
+
+       gtk_widget_show_all (main_vbox);
+       return main_vbox;
+}
+
+
+GtkWidget*
+modest_account_view_window_new (ModestWidgetFactory *factory)
+{
+       GObject *obj;
+       ModestAccountViewWindowPrivate *priv;
+
+       g_return_val_if_fail (factory, NULL);
+       
+       obj  = g_object_new(MODEST_TYPE_ACCOUNT_VIEW_WINDOW, NULL);
+       priv = MODEST_ACCOUNT_VIEW_WINDOW_GET_PRIVATE(obj);
+
+       g_object_ref (G_OBJECT(factory));
+       priv->widget_factory = factory;
+
+       gtk_window_set_resizable (GTK_WINDOW(obj), FALSE);
+
+       gtk_window_set_title (GTK_WINDOW(obj), _("Accounts"));
+       gtk_window_set_type_hint (GTK_WINDOW(obj), GDK_WINDOW_TYPE_HINT_DIALOG);
+       
+       gtk_window_set_modal (GTK_WINDOW(obj), TRUE);
+               
+       gtk_container_add (GTK_CONTAINER(obj),
+                          window_vbox_new (MODEST_ACCOUNT_VIEW_WINDOW(obj)));
+               
+       return GTK_WIDGET(obj);
+}
diff --git a/src/maemo/modest-account-view-window.h b/src/maemo/modest-account-view-window.h
new file mode 100644 (file)
index 0000000..1545c6f
--- /dev/null
@@ -0,0 +1,42 @@
+/* modest-account-view-window.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_ACCOUNT_VIEW_WINDOW_H__
+#define __MODEST_ACCOUNT_VIEW_WINDOW_H__
+
+#include <gtk/gtk.h>
+#include <modest-widget-factory.h>
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define MODEST_TYPE_ACCOUNT_VIEW_WINDOW             (modest_account_view_window_get_type())
+#define MODEST_ACCOUNT_VIEW_WINDOW(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_ACCOUNT_VIEW_WINDOW,ModestAccountViewWindow))
+#define MODEST_ACCOUNT_VIEW_WINDOW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_ACCOUNT_VIEW_WINDOW,GtkWindow))
+#define MODEST_IS_ACCOUNT_VIEW_WINDOW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_ACCOUNT_VIEW_WINDOW))
+#define MODEST_IS_ACCOUNT_VIEW_WINDOW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_ACCOUNT_VIEW_WINDOW))
+#define MODEST_ACCOUNT_VIEW_WINDOW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_ACCOUNT_VIEW_WINDOW,ModestAccountViewWindowClass))
+
+typedef struct _ModestAccountViewWindow      ModestAccountViewWindow;
+typedef struct _ModestAccountViewWindowClass ModestAccountViewWindowClass;
+
+struct _ModestAccountViewWindow {
+        GtkWindow parent;
+       /* insert public members, if any */
+};
+
+struct _ModestAccountViewWindowClass {
+       GtkWindowClass parent_class;
+       /* insert signal callback declarations, eg. */
+       /* void (* my_event) (ModestAccountViewWindow* obj); */
+};
+
+/* member functions */
+GType        modest_account_view_window_get_type    (void) G_GNUC_CONST;
+
+GtkWidget*   modest_account_view_window_new         (ModestWidgetFactory *factory);
+
+G_END_DECLS
+
+#endif /* __MODEST_ACCOUNT_VIEW_WINDOW_H__ */
+
diff --git a/src/maemo/modest-edit-msg-window.c b/src/maemo/modest-edit-msg-window.c
new file mode 100644 (file)
index 0000000..3c287f9
--- /dev/null
@@ -0,0 +1,498 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include <glib/gi18n.h>
+#include <tny-account-store.h>
+#include "modest-edit-msg-window.h"
+#include "modest-widget-memory.h"
+#include "modest-mail-operation.h"
+#include "modest-tny-platform-factory.h"
+#include "modest-tny-msg-actions.h"
+#include <tny-simple-list.h>
+
+static void  modest_edit_msg_window_class_init   (ModestEditMsgWindowClass *klass);
+static void  modest_edit_msg_window_init         (ModestEditMsgWindow *obj);
+static void  modest_edit_msg_window_finalize     (GObject *obj);
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+typedef struct _ModestEditMsgWindowPrivate ModestEditMsgWindowPrivate;
+struct _ModestEditMsgWindowPrivate {
+
+       ModestWidgetFactory *factory;
+       TnyPlatformFactory *fact;
+       
+       GtkWidget      *toolbar, *menubar;
+       GtkWidget      *msg_body;
+       GtkWidget      *from_field, *to_field, *cc_field, *bcc_field,
+                      *subject_field;
+};
+#define MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                                    MODEST_TYPE_EDIT_MSG_WINDOW, \
+                                                    ModestEditMsgWindowPrivate))
+/* globals */
+static GtkWindowClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_edit_msg_window_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestEditMsgWindowClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_edit_msg_window_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestEditMsgWindow),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_edit_msg_window_init,
+                       NULL
+               };
+               my_type = g_type_register_static (GTK_TYPE_WINDOW,
+                                                 "ModestEditMsgWindow",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_edit_msg_window_class_init (ModestEditMsgWindowClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_edit_msg_window_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestEditMsgWindowPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+static void
+modest_edit_msg_window_init (ModestEditMsgWindow *obj)
+{
+       ModestEditMsgWindowPrivate *priv;
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(obj);
+
+       priv->fact = modest_tny_platform_factory_get_instance ();
+       priv->factory = NULL;
+       priv->toolbar = NULL;
+       priv->menubar = NULL;
+}
+
+
+
+static void
+save_settings (ModestEditMsgWindow *self)
+{
+       ModestEditMsgWindowPrivate *priv;
+       ModestConf *conf;
+
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+       conf = modest_tny_platform_factory_get_modest_conf_instance (priv->fact);
+
+       modest_widget_memory_save_settings (conf, GTK_WIDGET(self),
+                                           "modest-edit-msg-window");
+}
+
+
+static void
+restore_settings (ModestEditMsgWindow *self)
+{
+       ModestEditMsgWindowPrivate *priv;
+       ModestConf *conf;
+
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+       conf = modest_tny_platform_factory_get_modest_conf_instance (priv->fact);
+
+       modest_widget_memory_restore_settings (conf, GTK_WIDGET(self),
+                                              "modest-edit-msg-window");
+}
+
+       
+
+static void
+on_menu_quit (ModestEditMsgWindow *self, guint action, GtkWidget *widget)
+{
+       save_settings (self);
+       gtk_widget_destroy (GTK_WIDGET(self));
+}
+
+
+
+
+
+/* Our menu, an array of GtkItemFactoryEntry structures that defines each menu item */
+static GtkItemFactoryEntry menu_items[] = {
+       { "/_File",             NULL,                   NULL,           0, "<Branch>" ,NULL},
+       { "/File/_New",         "<control>N",           NULL,           0, "<StockItem>", GTK_STOCK_NEW },
+       { "/File/_Open",        "<control>O",           NULL,           0, "<StockItem>", GTK_STOCK_OPEN },
+       { "/File/_Save",        "<control>S",           NULL,           0, "<StockItem>", GTK_STOCK_SAVE },
+       { "/File/Save _As",     NULL,                   NULL,           0, "<Item>", NULL} ,
+       { "/File/Save Draft",   "<control><shift>S",    NULL,           0, "<Item>",NULL },
+
+
+       { "/File/sep1",         NULL,                   NULL,           0, "<Separator>" ,NULL },
+       { "/File/_Quit",        "<CTRL>Q",              on_menu_quit,   0, "<StockItem>", GTK_STOCK_QUIT },
+
+       { "/_Edit",             NULL,                   NULL,           0, "<Branch>" ,NULL },
+       { "/Edit/_Undo",        "<CTRL>Z",              NULL,           0, "<StockItem>", GTK_STOCK_UNDO },
+       { "/Edit/_Redo",        "<shift><CTRL>Z",       NULL,           0, "<StockItem>", GTK_STOCK_REDO },
+       { "/File/sep1",         NULL,                   NULL,           0, "<Separator>",NULL },
+       { "/Edit/Cut",          "<control>X",           NULL,           0, "<StockItem>", GTK_STOCK_CUT  },
+       { "/Edit/Copy",         "<CTRL>C",              NULL,           0, "<StockItem>", GTK_STOCK_COPY },
+       { "/Edit/Paste",        NULL,                   NULL,           0, "<StockItem>", GTK_STOCK_PASTE},
+       { "/Edit/sep1",         NULL,                   NULL,           0, "<Separator>",NULL },
+       { "/Edit/Delete",       "<CTRL>Q",              NULL,           0, "<Item>" ,NULL },
+       { "/Edit/Select all",   "<CTRL>A",              NULL,           0, "<Item>" ,NULL },
+       { "/Edit/Deselect all",  "<Shift><CTRL>A",      NULL,           0, "<Item>",NULL },
+
+       { "/_View",             NULL,           NULL,                   0, "<Branch>",NULL },
+       { "/View/To-field",          NULL,              NULL,           0, "<CheckItem>",NULL },
+       
+       { "/View/Cc-field:",          NULL,             NULL,           0, "<CheckItem>",NULL },
+       { "/View/Bcc-field:",          NULL,            NULL,           0, "<CheckItem>",NULL },
+       
+       
+       { "/_Insert",             NULL,         NULL,           0, "<Branch>",NULL },
+/*     { "/Actions/_Reply",    NULL,                   NULL,           0, "<Item>" }, */
+/*     { "/Actions/_Forward",  NULL,                   NULL,           0, "<Item>" }, */
+/*     { "/Actions/_Bounce",   NULL,                   NULL,           0, "<Item>" },   */
+       
+       { "/_Format",            NULL,                  NULL,           0, "<Branch>",NULL }
+/*     { "/Options/_Accounts",  NULL,                  on_menu_accounts,0, "<Item>" }, */
+/*     { "/Options/_Contacts",  NULL,                  NULL,           0, "<Item>" }, */
+
+
+/*     { "/_Help",         NULL,                       NULL,           0, "<Branch>" }, */
+/*     { "/_Help/About",   NULL,                       on_menu_about,  0, "<StockItem>", GTK_STOCK_ABOUT}, */
+};
+
+static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]);
+
+
+static GtkWidget *
+menubar_new (ModestEditMsgWindow *self)
+{
+       GtkItemFactory *item_factory;
+       GtkAccelGroup *accel_group;
+       
+       /* Make an accelerator group (shortcut keys) */
+       accel_group = gtk_accel_group_new ();
+       
+       /* Make an ItemFactory (that makes a menubar) */
+       item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>",
+                                            accel_group);
+       
+       /* This function generates the menu items. Pass the item factory,
+          the number of items in the array, the array itself, and any
+          callback data for the the menu items. */
+       gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, self);
+       
+       ///* Attach the new accelerator group to the window. */
+       gtk_window_add_accel_group (GTK_WINDOW (self), accel_group);
+       
+       /* Finally, return the actual menu bar created by the item factory. */
+       return gtk_item_factory_get_widget (item_factory, "<main>");
+}
+
+
+static void
+send_mail (ModestEditMsgWindow *self)
+{
+       const gchar *to, *cc, *bcc, *subject;
+       gchar *body, *from;
+       ModestEditMsgWindowPrivate *priv;
+       TnyTransportAccount *transport_account;
+       ModestMailOperation *mail_operation;
+       ModestAccountData *data;
+       
+       GtkTextBuffer *buf;
+       GtkTextIter b, e;
+       
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+       data = modest_combo_box_get_active_id (MODEST_COMBO_BOX (priv->from_field));
+
+       /* don't free these (except from) */
+       from    =  g_strdup_printf ("%s <%s>", data->full_name, data->email) ;
+       to      =  gtk_entry_get_text (GTK_ENTRY(priv->to_field));
+       cc      =  gtk_entry_get_text (GTK_ENTRY(priv->cc_field));
+       bcc     =  gtk_entry_get_text (GTK_ENTRY(priv->bcc_field));
+       subject =  gtk_entry_get_text (GTK_ENTRY(priv->subject_field));
+       
+       /* don't unref */
+       buf   =  gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->msg_body));
+       
+       gtk_text_buffer_get_bounds (buf, &b, &e);
+       body  = gtk_text_buffer_get_text (buf, &b, &e,
+                                         FALSE); /* free this one */
+
+       /* FIXME: Code added just for testing. The transport_account
+          should be provided by the account manager, maybe using
+          _get_current_account () or _get_default_account
+          (TRANSPORT_ACCOUNT). These methods do not exist currently. */
+       {
+               TnyList *accounts;
+               TnyIterator *iter;
+               TnyAccountStore *account_store;
+
+               accounts = TNY_LIST(tny_simple_list_new ());
+               account_store = tny_platform_factory_new_account_store (priv->fact);
+               tny_account_store_get_accounts (account_store, accounts,
+                                               TNY_ACCOUNT_STORE_TRANSPORT_ACCOUNTS);
+
+               iter = tny_list_create_iterator(accounts);
+               tny_iterator_first (iter);
+               if (tny_iterator_is_done (iter)) {
+                       /* FIXME: Add error handling through mail operation */
+                       g_printerr("modest: no transport accounts defined\n");
+                       g_free (body);
+                       return;
+               }
+               transport_account = TNY_TRANSPORT_ACCOUNT (tny_iterator_get_current(iter));
+       }
+
+       mail_operation = modest_mail_operation_new ();
+
+       modest_mail_operation_send_new_mail (mail_operation,
+                                            transport_account,
+                                            from, to, cc, bcc,
+                                            subject, body, NULL);
+       /* Clean up */
+       g_object_unref (mail_operation);
+       g_free (from);
+       g_free (body);
+}
+
+
+static void
+on_toolbar_button_clicked (ModestToolbar *toolbar, ModestToolbarButton button_id,
+                          ModestEditMsgWindow *self)
+{
+       switch (button_id) {
+       case MODEST_TOOLBAR_BUTTON_MAIL_SEND:
+               send_mail (self);
+               save_settings (self);
+               gtk_widget_destroy (GTK_WIDGET(self));
+               break;
+               
+       case MODEST_TOOLBAR_BUTTON_REPLY:
+       case MODEST_TOOLBAR_BUTTON_REPLY_ALL:
+       case MODEST_TOOLBAR_BUTTON_FORWARD:
+       case MODEST_TOOLBAR_BUTTON_SEND_RECEIVE:
+       case MODEST_TOOLBAR_BUTTON_NEXT:
+       case MODEST_TOOLBAR_BUTTON_PREV:
+       case MODEST_TOOLBAR_BUTTON_DELETE:
+
+       default:
+               g_printerr ("modest: key %d pressed\n", button_id);
+       }
+}
+
+
+
+
+static ModestToolbar*
+toolbar_new (ModestEditMsgWindow *self)
+{
+       int i;
+       ModestToolbar *toolbar;
+       GSList *buttons = NULL;
+       ModestEditMsgWindowPrivate *priv;
+
+       ModestToolbarButton button_ids[] = {
+               MODEST_TOOLBAR_BUTTON_MAIL_SEND
+       };              
+       
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(self);
+
+       for (i = 0 ; i != sizeof(button_ids) / sizeof(ModestToolbarButton); ++i)
+               buttons = g_slist_append (buttons, GINT_TO_POINTER(button_ids[i]));
+       
+       toolbar = modest_widget_factory_get_edit_toolbar (priv->factory, buttons);
+       g_slist_free (buttons);
+
+       g_signal_connect (G_OBJECT(toolbar), "button_clicked",
+                         G_CALLBACK(on_toolbar_button_clicked), self);
+       
+       return toolbar;
+}
+
+
+static void
+init_window (ModestEditMsgWindow *obj)
+{
+       GtkWidget *to_button, *cc_button, *bcc_button; 
+       GtkWidget *header_table;
+       GtkWidget *main_vbox;
+       
+       ModestEditMsgWindowPrivate *priv;
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(obj);
+
+       to_button     = gtk_button_new_with_label (_("To..."));
+       cc_button     = gtk_button_new_with_label (_("Cc..."));
+       bcc_button    = gtk_button_new_with_label (_("Bcc..."));
+
+       priv->from_field    = modest_widget_factory_get_combo_box (priv->factory,
+                                                                  MODEST_COMBO_BOX_TYPE_TRANSPORTS);
+       priv->to_field      = gtk_entry_new_with_max_length (40);
+       priv->cc_field      = gtk_entry_new_with_max_length (40);
+       priv->bcc_field     = gtk_entry_new_with_max_length (40);
+       priv->subject_field = gtk_entry_new_with_max_length (40);
+       
+       header_table = gtk_table_new (5,2, FALSE);
+       
+       gtk_table_attach (GTK_TABLE(header_table), gtk_label_new (_("From:")),
+                         0,1,0,1, GTK_SHRINK, 0, 0, 0);
+       gtk_table_attach (GTK_TABLE(header_table), to_button,     0,1,1,2, GTK_SHRINK, 0, 0, 0);
+       gtk_table_attach (GTK_TABLE(header_table), cc_button,     0,1,2,3, GTK_SHRINK, 0, 0, 0);
+       gtk_table_attach (GTK_TABLE(header_table), bcc_button,    0,1,3,4, GTK_SHRINK, 0, 0, 0);
+       gtk_table_attach (GTK_TABLE(header_table), gtk_label_new (_("Subject:")),
+                         0,1,4,5, GTK_SHRINK, 0, 0, 0);
+
+       gtk_table_attach_defaults (GTK_TABLE(header_table), priv->from_field,   1,2,0,1);
+       gtk_table_attach_defaults (GTK_TABLE(header_table), priv->to_field,     1,2,1,2);
+       gtk_table_attach_defaults (GTK_TABLE(header_table), priv->cc_field,     1,2,2,3);
+       gtk_table_attach_defaults (GTK_TABLE(header_table), priv->bcc_field,    1,2,3,4);
+       gtk_table_attach_defaults (GTK_TABLE(header_table), priv->subject_field,1,2,4,5);
+
+       priv->msg_body = gtk_text_view_new ();
+       
+       main_vbox = gtk_vbox_new  (FALSE, 6);
+
+       priv->menubar = menubar_new (obj);
+       priv->toolbar = GTK_WIDGET(toolbar_new (obj));
+
+       gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(main_vbox), header_table, FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(main_vbox), priv->msg_body, TRUE, TRUE, 6);
+
+       gtk_widget_show_all (GTK_WIDGET(main_vbox));
+       gtk_container_add (GTK_CONTAINER(obj), main_vbox);
+}
+       
+
+
+static void
+modest_edit_msg_window_finalize (GObject *obj)
+{
+       ModestEditMsgWindowPrivate *priv;
+
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(obj);
+
+       g_object_unref (G_OBJECT(priv->factory));
+       priv->factory = NULL;
+       
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+
+}
+
+
+
+static gboolean
+on_delete_event (GtkWidget *widget, GdkEvent *event, ModestEditMsgWindow *self)
+{
+       save_settings (self);
+       return FALSE;
+}
+
+
+GtkWidget*
+modest_edit_msg_window_new (ModestWidgetFactory *factory,
+                           ModestEditType type, TnyMsg *msg)
+{
+       GObject *obj;
+       ModestEditMsgWindowPrivate *priv;
+
+       g_return_val_if_fail (factory, NULL);
+       g_return_val_if_fail (type < MODEST_EDIT_TYPE_NUM, NULL);
+       g_return_val_if_fail (!(type==MODEST_EDIT_TYPE_NEW && msg), NULL); 
+       g_return_val_if_fail (!(type!=MODEST_EDIT_TYPE_NEW && !msg), NULL);     
+       
+       obj = g_object_new(MODEST_TYPE_EDIT_MSG_WINDOW, NULL);
+       priv = MODEST_EDIT_MSG_WINDOW_GET_PRIVATE(obj);
+
+       g_object_ref (factory);
+       priv->factory = factory;
+
+       init_window (MODEST_EDIT_MSG_WINDOW(obj));
+
+       restore_settings (MODEST_EDIT_MSG_WINDOW(obj));
+       
+       gtk_window_set_title (GTK_WINDOW(obj), "Modest");
+       gtk_window_set_icon  (GTK_WINDOW(obj),
+                             modest_icon_factory_get_icon (MODEST_APP_ICON));
+
+       g_signal_connect (G_OBJECT(obj), "delete-event",
+                         G_CALLBACK(on_delete_event), obj);
+       
+       if (msg) {
+               /* Testing code. Should be into a set_msg method */
+               TnyHeader *header;
+               GtkTextBuffer *buf;
+
+               header = tny_msg_get_header (msg);
+               gtk_entry_set_text (GTK_ENTRY(priv->to_field),
+                                   tny_header_get_to (header));
+               gtk_entry_set_text (GTK_ENTRY(priv->cc_field),
+                                   tny_header_get_cc (header));
+               gtk_entry_set_text (GTK_ENTRY(priv->bcc_field),
+                                   tny_header_get_bcc (header));
+               gtk_entry_set_text (GTK_ENTRY(priv->subject_field),
+                                   tny_header_get_subject (header));   
+
+               buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW(priv->msg_body));
+               gtk_text_buffer_set_text (buf,
+                                         (const gchar *) modest_tny_msg_actions_find_body (msg, FALSE),
+                                         -1);
+
+               /* TODO: lower priority, select in the From: combo to
+                  the value that comes from msg */
+
+               /* TODO: set attachments */
+       }
+
+       return GTK_WIDGET (obj);
+}
diff --git a/src/maemo/modest-edit-msg-window.h b/src/maemo/modest-edit-msg-window.h
new file mode 100644 (file)
index 0000000..1aa27c2
--- /dev/null
@@ -0,0 +1,83 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef __MODEST_EDIT_MSG_WINDOW_H__
+#define __MODEST_EDIT_MSG_WINDOW_H__
+
+#include <gtk/gtk.h>
+#include <tny-msg.h>
+#include "modest-conf.h"
+#include "modest-widget-factory.h"
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define MODEST_TYPE_EDIT_MSG_WINDOW             (modest_edit_msg_window_get_type())
+#define MODEST_EDIT_MSG_WINDOW(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_EDIT_MSG_WINDOW,ModestEditMsgWindow))
+#define MODEST_EDIT_MSG_WINDOW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_EDIT_MSG_WINDOW,GtkWindow))
+#define MODEST_IS_EDIT_MSG_WINDOW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_EDIT_MSG_WINDOW))
+#define MODEST_IS_EDIT_MSG_WINDOW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_EDIT_MSG_WINDOW))
+#define MODEST_EDIT_MSG_WINDOW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_EDIT_MSG_WINDOW,ModestEditMsgWindowClass))
+
+typedef struct _ModestEditMsgWindow      ModestEditMsgWindow;
+typedef struct _ModestEditMsgWindowClass ModestEditMsgWindowClass;
+
+struct _ModestEditMsgWindow {
+        GtkWindow parent;
+       /* insert public members, if any */
+};
+
+struct _ModestEditMsgWindowClass {
+       GtkWindowClass parent_class;
+       /* insert signal callback declarations, eg. */
+       /* void (* my_event) (ModestEditMsgWindow* obj); */
+};
+
+
+typedef enum _ModestEditType {
+       MODEST_EDIT_TYPE_NEW,
+       MODEST_EDIT_TYPE_REPLY,
+       MODEST_EDIT_TYPE_FORWARD,
+       MODEST_EDIT_TYPE_VIEW,
+       
+       MODEST_EDIT_TYPE_NUM
+} ModestEditType;
+/* typedef enum _ModestEditType ModestEditType; */
+
+
+/* member functions */
+GType        modest_edit_msg_window_get_type    (void) G_GNUC_CONST;
+
+GtkWidget*   modest_edit_msg_window_new         (ModestWidgetFactory *factory,
+                                                ModestEditType type,
+                                                TnyMsg *msg);
+G_END_DECLS
+
+#endif /* __MODEST_EDIT_MSG_WINDOW_H__ */
+
diff --git a/src/maemo/modest-icon-names.h b/src/maemo/modest-icon-names.h
new file mode 100644 (file)
index 0000000..99f1135
--- /dev/null
@@ -0,0 +1,79 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+/* modest-tny-icon-names.h */
+
+/*
+ * FIXME: this should go the front-end dirs,
+ * with specific icons
+ */
+
+#ifndef __MODEST_TNY_ICON_NAMES_H__
+#define __MODEST_TNY_ICON_NAMES_H__
+
+#define PIXMAP_PREFIX PREFIX "/share/modest/pixmaps/"
+
+/* icons */
+
+#define MODEST_APP_ICON                                PIXMAP_PREFIX "internet-mail.svg"
+
+#define MODEST_HEADER_ICON_READ                        PIXMAP_PREFIX "qgn_list_messagin_mail.png"
+#define MODEST_HEADER_ICON_UNREAD              PIXMAP_PREFIX "qgn_list_messagin_mail_unread.png"
+#define MODEST_HEADER_ICON_DELETED             PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png"
+#define MODEST_HEADER_ICON_ATTACH              PIXMAP_PREFIX "qgn_list_gene_attacpap.png"
+
+#define MODEST_FOLDER_ICON_OPEN                        PIXMAP_PREFIX "qgn_list_gene_fldr_opn.png"
+#define MODEST_FOLDER_ICON_CLOSED              PIXMAP_PREFIX "qgn_list_gene_fldr_cls.png"
+
+#define MODEST_FOLDER_ICON_INBOX               PIXMAP_PREFIX "qgn_list_messagin_inbox.png"
+#define MODEST_FOLDER_ICON_OUTBOX              PIXMAP_PREFIX "qgn_list_messagin_outbox.png"
+#define MODEST_FOLDER_ICON_SENT                        PIXMAP_PREFIX "qgn_list_messagin_sent.png"
+#define MODEST_FOLDER_ICON_TRASH               PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png"
+#define MODEST_FOLDER_ICON_JUNK                        PIXMAP_PREFIX "qgn_list_messagin_mail_deleted.png"
+#define MODEST_FOLDER_ICON_DRAFTS              PIXMAP_PREFIX "qgn_list_messagin_drafts.png"
+#define MODEST_FOLDER_ICON_NORMAL              PIXMAP_PREFIX "qgn_list_gene_fldr_cls.png"
+
+#define MODEST_FOLDER_ICON_CONTACTS            PIXMAP_PREFIX "qgn_addr_icon_user_group.png"
+#define MODEST_FOLDER_ICON_NOTES               PIXMAP_PREFIX "qgn_list_messagin_viewer.png"
+#define MODEST_FOLDER_ICON_CALENDAR            PIXMAP_PREFIX "qgn_widg_datedit.png"
+
+/* toolbar */
+#define  MODEST_TOOLBAR_ICON_MAIL_SEND         PIXMAP_PREFIX "gnome-stock-mail-new.svg"
+#define  MODEST_TOOLBAR_ICON_NEW_MAIL          PIXMAP_PREFIX "gnome-stock-mail-new.svg"
+#define  MODEST_TOOLBAR_ICON_SEND_RECEIVE      PIXMAP_PREFIX "gtk-refresh.svg"
+#define  MODEST_TOOLBAR_ICON_REPLY             PIXMAP_PREFIX "gnome-stock-mail-rpl.svg"
+#define  MODEST_TOOLBAR_ICON_REPLY_ALL         PIXMAP_PREFIX "mail-reply-all.svg"
+#define  MODEST_TOOLBAR_ICON_FORWARD           PIXMAP_PREFIX "mail-forward.svg"
+#define  MODEST_TOOLBAR_ICON_DELETE            PIXMAP_PREFIX "edit-delete.svg"
+#define  MODEST_TOOLBAR_ICON_NEXT              PIXMAP_PREFIX "forward.svg"
+#define  MODEST_TOOLBAR_ICON_PREV              PIXMAP_PREFIX "back.svg"
+#define  MODEST_TOOLBAR_ICON_STOP              PIXMAP_PREFIX "stock-stop.svg"
+
+#endif  /*__MODEST_TNY_ICON_NAMES_H__*/
diff --git a/src/maemo/modest-main-window.c b/src/maemo/modest-main-window.c
new file mode 100644 (file)
index 0000000..fe542a7
--- /dev/null
@@ -0,0 +1,727 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <glib/gi18n.h>
+#include <gtk/gtkaboutdialog.h>
+#include <gtk/gtktreeviewcolumn.h>
+
+#include <modest-widget-memory.h>
+#include <modest-icon-factory.h>
+
+#include <widgets/modest-toolbar.h>
+
+#include "modest-main-window.h"
+#include "modest-account-view-window.h"
+#include "modest-account-mgr.h"
+#include "modest-conf.h"
+#include "modest-edit-msg-window.h"
+#include "modest-icon-names.h"
+#include "modest-tny-platform-factory.h"
+#include "modest-tny-msg-actions.h"
+#include "modest-mail-operation.h"
+
+/* 'private'/'protected' functions */
+static void modest_main_window_class_init    (ModestMainWindowClass *klass);
+static void modest_main_window_init          (ModestMainWindow *obj);
+static void modest_main_window_finalize      (GObject *obj);
+
+static void restore_sizes (ModestMainWindow *self);
+static void save_sizes (ModestMainWindow *self);
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+typedef struct _ModestMainWindowPrivate ModestMainWindowPrivate;
+struct _ModestMainWindowPrivate {
+
+       GtkWidget *toolbar;
+       GtkWidget *menubar;
+
+       GtkWidget *folder_paned;
+       GtkWidget *msg_paned;
+       GtkWidget *main_paned;
+       
+       ModestWidgetFactory *widget_factory;
+       TnyPlatformFactory *factory;
+  
+       ModestHeaderView *header_view;
+       ModestFolderView *folder_view;
+       ModestMsgView    *msg_preview;
+};
+
+
+#define MODEST_MAIN_WINDOW_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                                MODEST_TYPE_MAIN_WINDOW, \
+                                                ModestMainWindowPrivate))
+/* globals */
+static GtkWindowClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_main_window_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestMainWindowClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_main_window_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestMainWindow),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_main_window_init,
+                       NULL
+               };
+               my_type = g_type_register_static (GTK_TYPE_WINDOW,
+                                                 "ModestMainWindow",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_main_window_class_init (ModestMainWindowClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_main_window_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestMainWindowPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+static void
+modest_main_window_init (ModestMainWindow *obj)
+{
+       ModestMainWindowPrivate *priv;
+
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(obj);
+       
+       priv->factory = modest_tny_platform_factory_get_instance ();
+}
+
+static void
+modest_main_window_finalize (GObject *obj)
+{
+       ModestMainWindowPrivate *priv;  
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(obj);
+       if (priv->widget_factory) {
+               g_object_unref (G_OBJECT(priv->widget_factory));
+               priv->widget_factory = NULL;
+       }
+
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+
+static void
+on_menu_about (GtkWidget *widget, gpointer data)
+{
+       GtkWidget *about;
+       const gchar *authors[] = {
+               "Dirk-Jan C. Binnema <dirk-jan.binnema@nokia.com>",
+               NULL
+       };      
+       about = gtk_about_dialog_new ();
+       gtk_about_dialog_set_name (GTK_ABOUT_DIALOG(about), PACKAGE_NAME);
+       gtk_about_dialog_set_version (GTK_ABOUT_DIALOG(about),PACKAGE_VERSION);
+       gtk_about_dialog_set_copyright (
+               GTK_ABOUT_DIALOG(about),
+               _("Copyright (c) 2006, Nokia Corporation\n"
+                 "All rights reserved."));
+       gtk_about_dialog_set_comments ( GTK_ABOUT_DIALOG(about),
+               _("a modest e-mail client\n\n"
+                 "design and implementation: Dirk-Jan C. Binnema\n"
+                 "contributions from the fine people at KernelConcepts\n\n"
+                 "uses the tinymail email framework written by Philip van Hoof"));
+       gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG(about), authors);
+       gtk_about_dialog_set_website (GTK_ABOUT_DIALOG(about), "http://modest.garage.maemo.org");
+
+       gtk_dialog_run (GTK_DIALOG (about));
+       gtk_widget_destroy(about);
+}
+
+
+static void
+on_menu_accounts (ModestMainWindow *self, guint action, GtkWidget *widget)
+{
+       GtkWidget *account_win;
+       ModestMainWindowPrivate *priv;
+
+       g_return_if_fail (widget);
+       g_return_if_fail (self);
+       
+       priv        = MODEST_MAIN_WINDOW_GET_PRIVATE(self);     
+       account_win = modest_account_view_window_new (priv->widget_factory);
+
+       gtk_window_set_transient_for (GTK_WINDOW(account_win),
+                                     GTK_WINDOW(self));
+                                     
+       gtk_widget_show (account_win);
+}
+
+
+static void
+on_menu_new_message (ModestMainWindow *self, guint action, GtkWidget *widget)
+{
+       GtkWidget *msg_win;
+       ModestMainWindowPrivate *priv;
+
+       priv  = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+
+       msg_win = modest_edit_msg_window_new (priv->widget_factory,
+                                             MODEST_EDIT_TYPE_NEW,
+                                             NULL);
+       gtk_widget_show (msg_win);
+}
+
+static void
+on_menu_reply_forward (ModestMainWindow *self, guint action, GtkWidget *widget)
+{
+       GtkWidget *msg_win;
+       ModestMainWindowPrivate *priv;
+       ModestHeaderView *header_view;
+       TnyList *header_list;
+       TnyIterator *iter;
+       const gchar *from;
+       gchar *reply_key, *forward_key;
+       ModestMailOperationReplyType reply_type;
+       ModestMailOperationForwardType forward_type;
+       ModestConf *conf;
+       GError *error;
+
+       priv  = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       conf = modest_tny_platform_factory_get_modest_conf_instance (priv->factory);
+
+       header_view = modest_widget_factory_get_header_view (priv->widget_factory);
+       header_list = modest_header_view_get_selected_headers (header_view);
+
+       /* Get reply and forward types */
+       error = NULL;
+       reply_key = g_strdup_printf ("%s/%s", MODEST_CONF_NAMESPACE, MODEST_CONF_REPLY_TYPE);
+       reply_type = modest_conf_get_int (conf, reply_key, &error);
+       if (error) {
+               g_warning ("key %s not defined", reply_key);
+               reply_type = MODEST_MAIL_OPERATION_REPLY_TYPE_CITE;
+               g_error_free (error);
+               error = NULL;
+       }
+       g_free (reply_key);
+       
+       forward_key = g_strdup_printf ("%s/%s", MODEST_CONF_NAMESPACE, MODEST_CONF_FORWARD_TYPE);
+       forward_type = modest_conf_get_int (conf, forward_key, NULL);
+       if (error) {
+               g_warning ("key %s not defined", forward_key);
+               reply_type = MODEST_MAIL_OPERATION_FORWARD_TYPE_INLINE;
+               g_error_free (error);
+       }
+       g_free (forward_key);
+       
+       if (header_list) {
+               iter = tny_list_create_iterator (header_list);
+               do {
+                       TnyHeader *header, *new_header;
+                       TnyFolder *folder;
+                       TnyMsg    *msg, *new_msg;
+                       ModestEditType edit_type;
+
+                       /* Get msg from header */
+                       header = TNY_HEADER (tny_iterator_get_current (iter));
+                       folder = tny_header_get_folder (header);
+                       msg = tny_folder_get_msg (folder, header, NULL); /* FIXME */
+
+                       from = modest_folder_view_get_selected_account (priv->folder_view);
+
+                       /* FIXME: select proper action */
+                       switch (action) {
+                       case 1:
+                               new_msg = 
+                                       modest_mail_operation_create_reply_mail (msg, from, reply_type,
+                                                                                MODEST_MAIL_OPERATION_REPLY_MODE_SENDER);
+                               edit_type = MODEST_EDIT_TYPE_REPLY;
+                               break;
+                       case 2:
+                               new_msg = 
+                                       modest_mail_operation_create_reply_mail (msg, from, reply_type,
+                                                                                MODEST_MAIL_OPERATION_REPLY_MODE_ALL);
+                               edit_type = MODEST_EDIT_TYPE_REPLY;
+                               break;
+                       case 3:
+                               new_msg = 
+                                       modest_mail_operation_create_forward_mail (msg, from, forward_type);
+                               edit_type = MODEST_EDIT_TYPE_FORWARD;
+                               break;
+                       default:
+                               g_warning ("unexpected action type: %d", action);
+                       }
+
+                       /* Set from */
+                       new_header = tny_msg_get_header (new_msg);
+                       tny_header_set_from (new_header, 
+                                            modest_folder_view_get_selected_account (priv->folder_view));
+
+                       /* Show edit window */
+                       msg_win = modest_edit_msg_window_new (priv->widget_factory,
+                                                             edit_type,
+                                                             new_msg);
+                       gtk_widget_show (msg_win);
+
+                       /* Clean and go on */
+                       g_object_unref (new_msg);
+                       tny_iterator_next (iter);
+
+               } while (!tny_iterator_is_done (iter));
+       }
+}
+
+static void
+on_menu_quit (ModestMainWindow *self, guint action, GtkWidget *widget)
+{
+       save_sizes (self);
+       gtk_widget_destroy (GTK_WIDGET(self));
+}
+
+static void
+on_menu_delete (ModestMainWindow *self, guint action, GtkWidget *widget)
+{
+       ModestMainWindowPrivate *priv;
+       ModestHeaderView *header_view;
+       TnyList *header_list;
+       TnyIterator *iter;
+       GtkTreeModel *model;
+
+       priv  = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+
+       header_view = modest_widget_factory_get_header_view (priv->widget_factory);
+       header_list = modest_header_view_get_selected_headers (header_view);
+       
+       if (header_list) {
+               iter = tny_list_create_iterator (header_list);
+               model = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
+               if (GTK_IS_TREE_MODEL_SORT (model))
+                       model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (model));
+               do {
+                       TnyHeader *header;
+                       ModestMailOperation *mail_op;
+
+                       header = TNY_HEADER (tny_iterator_get_current (iter));
+                       /* TODO: thick grain mail operation involving
+                          a list of objects. Composite pattern ??? */
+                       mail_op = modest_mail_operation_new ();
+
+                       /* Move to trash */
+                       modest_mail_operation_remove_msg (mail_op, header, TRUE);
+
+                       /* Remove from tree model */
+                       tny_list_remove (TNY_LIST (model), G_OBJECT (header));
+
+                       g_object_unref (G_OBJECT (mail_op));
+                       g_object_unref (header);
+                       tny_iterator_next (iter);
+
+               } while (!tny_iterator_is_done (iter));
+       }
+}
+
+
+/* Our menu, an array of GtkItemFactoryEntry structures that defines each menu item */
+static GtkItemFactoryEntry menu_items[] = {
+       { "/_File",             NULL,                   NULL,           0, "<Branch>", NULL },
+       { "/File/_New",         "<control>N",           NULL,           0, "<StockItem>", GTK_STOCK_NEW },
+       { "/File/_Open",        "<control>O",           NULL,           0, "<StockItem>", GTK_STOCK_OPEN },
+       { "/File/_Save",        "<control>S",           NULL,           0, "<StockItem>", GTK_STOCK_SAVE },
+       { "/File/Save _As",     NULL,                   NULL,           0, "<Item>", NULL },
+       { "/File/sep1",         NULL,                   NULL,           0, "<Separator>", NULL },
+       { "/File/_Quit",        "<CTRL>Q",              on_menu_quit,  0, "<StockItem>", GTK_STOCK_QUIT },
+
+       { "/_Edit",             NULL,                   NULL,           0, "<Branch>", NULL },
+       { "/Edit/_Undo",        "<CTRL>Z",              NULL,           0, "<StockItem>", GTK_STOCK_UNDO },
+       { "/Edit/_Redo",        "<shift><CTRL>Z",       NULL,           0, "<StockItem>", GTK_STOCK_REDO },
+       { "/File/sep1",         NULL,                   NULL,           0, "<Separator>", NULL },
+       { "/Edit/Cut",          "<control>X",           NULL,           0, "<StockItem>", GTK_STOCK_CUT  },
+       { "/Edit/Copy",         "<CTRL>C",              NULL,           0, "<StockItem>", GTK_STOCK_COPY },
+       { "/Edit/Paste",        NULL,                   NULL,           0, "<StockItem>", GTK_STOCK_PASTE},
+       { "/Edit/sep1",         NULL,                   NULL,           0, "<Separator>", NULL },
+       { "/Edit/Delete",       "<CTRL>Q",              NULL,           0, "<Item>" ,NULL},
+       { "/Edit/Select all",   "<CTRL>A",              NULL,           0, "<Item>" ,NULL},
+       { "/Edit/Deelect all",  "<Shift><CTRL>A",       NULL,           0, "<Item>" ,NULL},
+
+       { "/_Actions",                NULL,             NULL,           0, "<Branch>" ,NULL},
+       { "/Actions/_New Message",    NULL,             on_menu_new_message,            0, "<Item>",NULL },
+       { "/Actions/_Reply",    NULL,                   on_menu_reply_forward,          1, "<Item>" ,NULL},
+       { "/Actions/_Forward",  NULL,                   on_menu_reply_forward,          3, "<Item>" ,NULL},
+       { "/Actions/_Bounce",   NULL,                   NULL,           0, "<Item>",NULL },     
+       
+       { "/_Options",           NULL,                  NULL,           0, "<Branch>" ,NULL},
+       { "/Options/_Accounts",  NULL,                  on_menu_accounts,0, "<Item>" ,NULL},
+       { "/Options/_Contacts",  NULL,                  NULL,           0, "<Item>" ,NULL },
+
+
+       { "/_Help",         NULL,                       NULL,           0, "<Branch>" ,NULL},
+       { "/_Help/About",   NULL,                       on_menu_about,  0, "<StockItem>", GTK_STOCK_ABOUT},
+};
+
+static gint nmenu_items = sizeof (menu_items) / sizeof (menu_items[0]);
+
+
+static GtkWidget *
+menubar_new (ModestMainWindow *self)
+{
+       GtkItemFactory *item_factory;
+       GtkAccelGroup *accel_group;
+       
+       /* Make an accelerator group (shortcut keys) */
+       accel_group = gtk_accel_group_new ();
+       
+       /* Make an ItemFactory (that makes a menubar) */
+       item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>",
+                                            accel_group);
+       
+       /* This function generates the menu items. Pass the item factory,
+          the number of items in the array, the array itself, and any
+          callback data for the the menu items. */
+       gtk_item_factory_create_items (item_factory, nmenu_items, menu_items, self);
+       
+       ///* Attach the new accelerator group to the window. */
+       gtk_window_add_accel_group (GTK_WINDOW (self), accel_group);
+       
+       /* Finally, return the actual menu bar created by the item factory. */
+       return gtk_item_factory_get_widget (item_factory, "<main>");
+}
+
+
+
+
+static ModestHeaderView*
+header_view_new (ModestMainWindow *self)
+{
+       int i;
+       GSList *columns = NULL;
+       ModestHeaderView *header_view;
+       ModestMainWindowPrivate *priv;
+       ModestHeaderViewColumn cols[] = {
+               MODEST_HEADER_VIEW_COLUMN_MSGTYPE,
+               MODEST_HEADER_VIEW_COLUMN_ATTACH,
+/*             MODEST_HEADER_VIEW_COLUMN_COMPACT_HEADER, */
+               MODEST_HEADER_VIEW_COLUMN_FROM,
+               MODEST_HEADER_VIEW_COLUMN_SUBJECT,
+               MODEST_HEADER_VIEW_COLUMN_RECEIVED_DATE
+       };
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       
+       for (i = 0 ; i != sizeof(cols) / sizeof(ModestHeaderViewColumn); ++i)
+               columns = g_slist_append (columns, GINT_TO_POINTER(cols[i]));
+
+       header_view = modest_widget_factory_get_header_view (priv->widget_factory);
+       modest_header_view_set_columns (header_view, columns);
+       g_slist_free (columns);
+
+       return header_view;
+}
+
+static void
+on_toolbar_button_clicked (ModestToolbar *toolbar, ModestToolbarButton button_id,
+                          ModestMainWindow *self)
+{
+       GtkTreeSelection *sel;
+       GtkTreeIter iter;
+       GtkTreeModel *model;
+       ModestMainWindowPrivate *priv;
+
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       
+       switch (button_id) {
+       case MODEST_TOOLBAR_BUTTON_NEW_MAIL:
+               on_menu_new_message (self, 0, NULL);
+               break;
+       case MODEST_TOOLBAR_BUTTON_REPLY:
+               on_menu_reply_forward (self, 1, NULL);
+               break;
+       case MODEST_TOOLBAR_BUTTON_REPLY_ALL:
+               on_menu_reply_forward (self, 2, NULL);
+               break;
+       case MODEST_TOOLBAR_BUTTON_FORWARD:
+               on_menu_reply_forward (self, 3, NULL);
+               break;
+       case MODEST_TOOLBAR_BUTTON_SEND_RECEIVE:
+               
+
+       case MODEST_TOOLBAR_BUTTON_NEXT:
+               sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(priv->header_view));
+               if (sel) {
+                       gtk_tree_selection_get_selected (sel, &model, &iter);
+                       gtk_tree_model_iter_next (model, &iter);
+                       gtk_tree_selection_select_iter (sel, &iter);
+               }
+               
+       case MODEST_TOOLBAR_BUTTON_PREV:
+       /*      if (sel) { */
+/*                     gtk_tree_selection_get_selected (sel, &model, &iter); */
+/*                     gtk_tree_model_iter_prev (model, &iter); */
+/*                     gtk_tree_selection_select_iter (sel, &iter); */
+/*             } */
+
+               break;
+       case MODEST_TOOLBAR_BUTTON_DELETE:
+               on_menu_delete (self, 0, GTK_WIDGET (toolbar));
+               break;
+
+       default:
+               g_printerr ("modest: key %d pressed\n", button_id);
+       }
+}
+
+static ModestToolbar*
+toolbar_new (ModestMainWindow *self)
+{
+       int i;
+       ModestToolbar *toolbar;
+       GSList *buttons = NULL;
+       ModestMainWindowPrivate *priv;
+
+       ModestToolbarButton button_ids[] = {
+               MODEST_TOOLBAR_BUTTON_NEW_MAIL,
+               MODEST_TOOLBAR_BUTTON_REPLY,
+               MODEST_TOOLBAR_BUTTON_REPLY_ALL,
+               MODEST_TOOLBAR_BUTTON_FORWARD,
+               MODEST_TOOLBAR_SEPARATOR,
+               MODEST_TOOLBAR_BUTTON_SEND_RECEIVE,
+               MODEST_TOOLBAR_SEPARATOR,
+               MODEST_TOOLBAR_BUTTON_PREV,
+               MODEST_TOOLBAR_BUTTON_NEXT,
+               MODEST_TOOLBAR_SEPARATOR,               
+               MODEST_TOOLBAR_BUTTON_DELETE
+       };              
+       
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+
+       for (i = 0 ; i != sizeof(button_ids) / sizeof(ModestToolbarButton); ++i)
+               buttons = g_slist_append (buttons, GINT_TO_POINTER(button_ids[i]));
+       
+       toolbar = modest_widget_factory_get_main_toolbar (priv->widget_factory, buttons);
+       g_slist_free (buttons);
+       
+       g_signal_connect (G_OBJECT(toolbar), "button_clicked",
+                         G_CALLBACK(on_toolbar_button_clicked), self);
+       
+       return toolbar;
+}
+
+
+
+static void
+restore_sizes (ModestMainWindow *self)
+{
+       ModestConf *conf;
+       ModestMainWindowPrivate *priv;
+       
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       conf = modest_tny_platform_factory_get_modest_conf_instance (priv->factory);
+
+       modest_widget_memory_restore_settings (conf,GTK_WIDGET(self),
+                                              "modest-main-window");
+       modest_widget_memory_restore_settings (conf, GTK_WIDGET(priv->folder_paned),
+                                              "modest-folder-paned");
+       modest_widget_memory_restore_settings (conf, GTK_WIDGET(priv->msg_paned),
+                                              "modest-msg-paned");
+       modest_widget_memory_restore_settings (conf, GTK_WIDGET(priv->main_paned),
+                                              "modest-main-paned");
+}
+
+
+static void
+save_sizes (ModestMainWindow *self)
+{
+       ModestMainWindowPrivate *priv;
+       ModestConf *conf;
+       
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(self);
+       conf = modest_tny_platform_factory_get_modest_conf_instance (priv->factory);
+       
+       modest_widget_memory_save_settings (conf,GTK_WIDGET(self),
+                                           "modest-main-window");
+       modest_widget_memory_save_settings (conf, GTK_WIDGET(priv->folder_paned),
+                                           "modest-folder-paned");
+       modest_widget_memory_save_settings (conf, GTK_WIDGET(priv->msg_paned),
+                                           "modest-msg-paned");
+       modest_widget_memory_save_settings (conf, GTK_WIDGET(priv->main_paned),
+                                           "modest-main-paned");
+}
+
+static GtkWidget*
+wrapped_in_scrolled_window (GtkWidget *widget, gboolean needs_viewport)
+{
+       GtkWidget *win;
+
+       win = gtk_scrolled_window_new (NULL, NULL);
+       gtk_scrolled_window_set_policy
+               (GTK_SCROLLED_WINDOW (win),GTK_POLICY_NEVER,
+                GTK_POLICY_AUTOMATIC);
+       
+       if (needs_viewport)
+               gtk_scrolled_window_add_with_viewport
+                       (GTK_SCROLLED_WINDOW(win), widget);
+       else
+               gtk_container_add (GTK_CONTAINER(win),
+                                  widget);
+
+       return win;
+}
+
+
+static gboolean
+on_delete_event (GtkWidget *widget, GdkEvent  *event, ModestMainWindow *self)
+{
+       save_sizes (self);
+       return FALSE;
+}
+
+static GtkWidget*
+favorites_view ()
+{
+       GtkWidget *favorites;
+       GtkTreeStore *store;
+       GtkTreeViewColumn *col;
+
+       store = gtk_tree_store_new (1, G_TYPE_STRING);
+       favorites = gtk_tree_view_new_with_model (GTK_TREE_MODEL(store));
+       col = gtk_tree_view_column_new_with_attributes (_("Favorites"),
+                                                       gtk_cell_renderer_text_new(),
+                                                       "text", 0, NULL);
+       
+       gtk_tree_view_append_column (GTK_TREE_VIEW(favorites), col);
+       gtk_widget_show_all (favorites);
+
+       g_object_unref (G_OBJECT(store));
+
+       return favorites;
+}
+
+
+
+GtkWidget*
+modest_main_window_new (ModestWidgetFactory *widget_factory)
+{
+       GObject *obj;
+       ModestMainWindowPrivate *priv;
+       
+       GtkWidget *main_vbox;
+       GtkWidget *status_hbox;
+       GtkWidget *header_win, *folder_win, *favorites_win;
+       
+       g_return_val_if_fail (widget_factory, NULL);
+
+       obj  = g_object_new(MODEST_TYPE_MAIN_WINDOW, NULL);
+       priv = MODEST_MAIN_WINDOW_GET_PRIVATE(obj);
+
+       g_object_ref (widget_factory);
+       priv->widget_factory = widget_factory;
+
+       /* widgets from factory */
+       priv->folder_view = modest_widget_factory_get_folder_view (widget_factory);
+       priv->header_view = header_view_new (MODEST_MAIN_WINDOW(obj));
+       priv->msg_preview = modest_widget_factory_get_msg_preview (widget_factory);
+       
+       folder_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->folder_view),
+                                                FALSE);
+       header_win = wrapped_in_scrolled_window (GTK_WIDGET(priv->header_view),
+                                                FALSE);                           
+       favorites_win = wrapped_in_scrolled_window (favorites_view(),FALSE);                       
+       
+       /* tool/menubar */
+       priv->menubar = menubar_new (MODEST_MAIN_WINDOW(obj));
+       priv->toolbar = GTK_WIDGET(toolbar_new (MODEST_MAIN_WINDOW(obj)));
+
+       /* paned */
+       priv->folder_paned = gtk_vpaned_new ();
+       priv->msg_paned = gtk_vpaned_new ();
+       priv->main_paned = gtk_hpaned_new ();
+       gtk_paned_add1 (GTK_PANED(priv->main_paned), priv->folder_paned);
+       gtk_paned_add2 (GTK_PANED(priv->main_paned), priv->msg_paned);
+       gtk_paned_add1 (GTK_PANED(priv->folder_paned), favorites_win);
+       gtk_paned_add2 (GTK_PANED(priv->folder_paned), folder_win);
+       gtk_paned_add1 (GTK_PANED(priv->msg_paned), header_win);
+       gtk_paned_add2 (GTK_PANED(priv->msg_paned), GTK_WIDGET(priv->msg_preview));
+
+       gtk_widget_show (GTK_WIDGET(priv->header_view));
+       gtk_tree_view_columns_autosize (GTK_TREE_VIEW(priv->header_view));
+
+       
+       /* status bar / progress */
+       status_hbox = gtk_hbox_new (FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(status_hbox),
+                           modest_widget_factory_get_folder_info_label (widget_factory),
+                           FALSE,FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(status_hbox),
+                           modest_widget_factory_get_status_bar(widget_factory),
+                           TRUE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX(status_hbox),
+                           modest_widget_factory_get_progress_bar(widget_factory),
+                           FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(status_hbox),
+                         modest_widget_factory_get_online_toggle(widget_factory),
+                         FALSE, FALSE, 0);
+
+       /* putting it all together... */
+       main_vbox = gtk_vbox_new (FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(main_vbox), priv->menubar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(main_vbox), priv->toolbar, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_paned, TRUE, TRUE,0);
+       gtk_box_pack_start (GTK_BOX(main_vbox), status_hbox, FALSE, FALSE, 0);
+       
+       gtk_container_add (GTK_CONTAINER(obj), main_vbox);
+       restore_sizes (MODEST_MAIN_WINDOW(obj));        
+
+       gtk_window_set_title (GTK_WINDOW(obj), "Modest");
+       gtk_window_set_icon  (GTK_WINDOW(obj),
+                             modest_icon_factory_get_icon (MODEST_APP_ICON));
+       
+       gtk_widget_show_all (main_vbox);
+
+       g_signal_connect (G_OBJECT(obj), "delete-event",
+                         G_CALLBACK(on_delete_event), obj);
+       
+       return GTK_WIDGET(obj);
+}
diff --git a/src/maemo/modest-main-window.h b/src/maemo/modest-main-window.h
new file mode 100644 (file)
index 0000000..be89bf0
--- /dev/null
@@ -0,0 +1,47 @@
+/* modest-main-window.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_MAIN_WINDOW_H__
+#define __MODEST_MAIN_WINDOW_H__
+
+#include <gtk/gtkwindow.h>
+#include <modest-widget-factory.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define MODEST_TYPE_MAIN_WINDOW             (modest_main_window_get_type())
+#define MODEST_MAIN_WINDOW(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_MAIN_WINDOW,ModestMainWindow))
+#define MODEST_MAIN_WINDOW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_MAIN_WINDOW,GtkWindow))
+#define MODEST_IS_MAIN_WINDOW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_MAIN_WINDOW))
+#define MODEST_IS_MAIN_WINDOW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_MAIN_WINDOW))
+#define MODEST_MAIN_WINDOW_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_MAIN_WINDOW,ModestMainWindowClass))
+
+typedef struct _ModestMainWindow      ModestMainWindow;
+typedef struct _ModestMainWindowClass ModestMainWindowClass;
+
+struct _ModestMainWindow {
+        GtkWindow parent;
+       /* insert public members, if any */
+};
+
+struct _ModestMainWindowClass {
+       GtkWindowClass parent_class;
+       /* insert signal callback declarations, eg. */
+       /* void (* my_event) (ModestMainWindow* obj); */
+};
+
+/* member functions */
+GType        modest_main_window_get_type    (void) G_GNUC_CONST;
+
+
+GtkWidget*   modest_main_window_new         (ModestWidgetFactory *factory);
+
+G_END_DECLS
+
+#endif /* __MODEST_MAIN_WINDOW_H__ */
+
diff --git a/src/maemo/modest-store-widget.c b/src/maemo/modest-store-widget.c
new file mode 100644 (file)
index 0000000..33989db
--- /dev/null
@@ -0,0 +1,355 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <glib/gi18n.h>
+#include "modest-store-widget.h"
+#include <string.h>
+
+/* 'private'/'protected' functions */
+static void modest_store_widget_class_init (ModestStoreWidgetClass *klass);
+static void modest_store_widget_init       (ModestStoreWidget *obj);
+static void modest_store_widget_finalize   (GObject *obj);
+/* list my signals  */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+typedef struct _ModestStoreWidgetPrivate ModestStoreWidgetPrivate;
+struct _ModestStoreWidgetPrivate {
+       
+       gchar* proto;
+       
+       GtkWidget *servername;
+       GtkWidget *username;
+       GtkWidget *security;
+       GtkWidget *auth;
+       GtkWidget *chooser;
+       GtkWidget *remember_pwd;
+       
+       ModestWidgetFactory *factory;
+};
+#define MODEST_STORE_WIDGET_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                                 MODEST_TYPE_STORE_WIDGET, \
+                                                 ModestStoreWidgetPrivate))
+/* globals */
+static GtkContainerClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_store_widget_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestStoreWidgetClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_store_widget_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestStoreWidget),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_store_widget_init,
+                       NULL
+               };
+               my_type = g_type_register_static (GTK_TYPE_VBOX,
+                                                 "ModestStoreWidget",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_store_widget_class_init (ModestStoreWidgetClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_store_widget_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestStoreWidgetPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+static void
+modest_store_widget_init (ModestStoreWidget *obj)
+{
+       ModestStoreWidgetPrivate *priv;
+       
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(obj); 
+
+       priv->proto = NULL;
+}
+
+
+
+static GtkWidget *
+maildir_configuration (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+       GtkWidget *label, *box, *hbox;
+       
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+       box = gtk_vbox_new (FALSE, 6);
+       
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL(label),
+                             _("<b>Maildir configuration</b>"));       
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 6);
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL(label),
+                             _("Please select the path to your Maildir below"));       
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 6);
+       
+       label = gtk_label_new (_("Path:"));
+
+       priv->chooser = 
+               gtk_file_chooser_button_new (_("(none)"),
+                                            GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+
+       hbox = gtk_hbox_new (FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox), priv->chooser, FALSE, FALSE, 6);
+
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 6);       
+
+       return box;
+}
+
+
+static GtkWidget*
+mbox_configuration (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+       GtkWidget *label, *box, *hbox;
+       
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+       box = gtk_vbox_new (FALSE, 6);
+       
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL(label),
+                             _("<b>Mbox configuration</b>"));  
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 6);
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL(label),
+                             _("Please select your mbox file below")); 
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 6);
+       
+       label = gtk_label_new (_("mbox:"));
+
+       priv->chooser =
+               gtk_file_chooser_button_new (_("(none)"),
+                                            GTK_FILE_CHOOSER_ACTION_OPEN);
+       hbox = gtk_hbox_new (FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox), priv->chooser, FALSE, FALSE, 6);
+       
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 6);       
+
+       return box;
+}
+
+
+static GtkWidget*
+imap_pop_configuration (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+       GtkWidget *label, *box, *hbox;
+
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+       box = gtk_vbox_new (FALSE, 6);
+       
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL(label),_("<b>Server configuration</b>"));
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 6);
+       
+       hbox    = gtk_hbox_new (FALSE, 6);
+       label   = gtk_label_new (_("Username:"));
+       if (!priv->username)
+               priv->username = gtk_entry_new_with_max_length (40);
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(hbox), priv->username,FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);       
+
+       hbox    = gtk_hbox_new (FALSE, 6);
+       label   = gtk_label_new (_("Server:"));
+       if (!priv->servername)
+               priv->servername = gtk_entry_new_with_max_length (40);
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(hbox), priv->servername,FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);       
+
+       label = gtk_label_new(NULL);
+       gtk_label_set_markup (GTK_LABEL(label),_("<b>Security</b>"));
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 0);
+
+       hbox = gtk_hbox_new (FALSE, 6);
+       label = gtk_label_new(NULL);
+       gtk_label_set_text (GTK_LABEL(label),_("Connection type:"));
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(hbox),  modest_widget_factory_get_combo_box
+                           (priv->factory, MODEST_COMBO_BOX_TYPE_SECURITY_PROTOS),
+                           FALSE, FALSE,0);
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);
+       
+       hbox = gtk_hbox_new (FALSE, 6);
+       label = gtk_label_new(NULL);
+
+       gtk_label_set_text (GTK_LABEL(label),_("Authentication:"));
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox),   modest_widget_factory_get_combo_box
+                           (priv->factory, MODEST_COMBO_BOX_TYPE_AUTH_PROTOS),
+                           FALSE, FALSE, 0);
+
+       priv->remember_pwd =
+               gtk_check_button_new_with_label (_("Remember password"));
+       gtk_box_pack_start (GTK_BOX(hbox),priv->remember_pwd,
+                           FALSE, FALSE, 0);
+       
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);
+
+       return box;
+}
+
+
+static void
+modest_store_widget_finalize (GObject *obj)
+{
+       ModestStoreWidgetPrivate *priv;
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(obj);
+       
+       if (priv->factory) {
+               g_object_unref (priv->factory);
+               priv->factory = NULL;
+       }
+
+       if (priv->proto) {
+               g_free (priv->proto);
+               priv->proto = NULL;
+       }
+
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+
+
+GtkWidget*
+modest_store_widget_new (ModestWidgetFactory *factory, const gchar *proto)
+{
+       GObject *obj;
+       GtkWidget *w;
+       ModestStoreWidget *self;
+       ModestStoreWidgetPrivate *priv;
+       
+       g_return_val_if_fail (proto, NULL);
+       g_return_val_if_fail (factory, NULL);
+
+       obj = g_object_new(MODEST_TYPE_STORE_WIDGET, NULL);
+       self = MODEST_STORE_WIDGET(obj);
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+
+       g_object_ref (factory);
+       priv->factory = factory;
+
+       priv->proto = g_strdup (proto);
+       
+       if (strcmp (proto, MODEST_PROTOCOL_STORE_POP) == 0 ||
+           strcmp (proto, MODEST_PROTOCOL_STORE_IMAP) == 0) {
+               w = imap_pop_configuration (self);
+       } else if (strcmp (proto, MODEST_PROTOCOL_STORE_MAILDIR) == 0) {
+               w = maildir_configuration (self);
+       }  else if (strcmp (proto, MODEST_PROTOCOL_STORE_MBOX) == 0) {
+               w = mbox_configuration (self);
+       } else
+               w = gtk_label_new ("");
+       
+       gtk_widget_show_all (w);
+       gtk_box_pack_start (GTK_BOX(self), w, FALSE, FALSE, 2);
+
+       return GTK_WIDGET(self);
+}
+
+
+gboolean
+modest_store_widget_get_remember_password (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, FALSE);
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+
+       return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(priv->remember_pwd));
+}
+
+
+const gchar*
+modest_store_widget_get_username (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, NULL);
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+       
+       return gtk_entry_get_text (GTK_ENTRY(priv->username));
+}
+
+const gchar*
+modest_store_widget_get_servername (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, NULL);
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+       
+       return gtk_entry_get_text (GTK_ENTRY(priv->servername));
+}
+
+
+const gchar*
+modest_store_widget_get_proto (ModestStoreWidget *self)
+{
+       ModestStoreWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, FALSE);
+       priv = MODEST_STORE_WIDGET_GET_PRIVATE(self);
+
+       return priv->proto;
+}
+
diff --git a/src/maemo/modest-store-widget.h b/src/maemo/modest-store-widget.h
new file mode 100644 (file)
index 0000000..b6e3f96
--- /dev/null
@@ -0,0 +1,48 @@
+/* modest-store-widget.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_STORE_WIDGET_H__
+#define __MODEST_STORE_WIDGET_H__
+
+#include <gtk/gtk.h>
+#include <modest-widget-factory.h>
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define MODEST_TYPE_STORE_WIDGET             (modest_store_widget_get_type())
+#define MODEST_STORE_WIDGET(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_STORE_WIDGET,ModestStoreWidget))
+#define MODEST_STORE_WIDGET_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_STORE_WIDGET,GtkContainer))
+#define MODEST_IS_STORE_WIDGET(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_STORE_WIDGET))
+#define MODEST_IS_STORE_WIDGET_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_STORE_WIDGET))
+#define MODEST_STORE_WIDGET_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_STORE_WIDGET,ModestStoreWidgetClass))
+
+typedef struct _ModestStoreWidget      ModestStoreWidget;
+typedef struct _ModestStoreWidgetClass ModestStoreWidgetClass;
+
+struct _ModestStoreWidget {
+        GtkVBox parent;
+       /* insert public members, if any */
+};
+
+struct _ModestStoreWidgetClass {
+       GtkVBoxClass parent_class;
+       /* insert signal callback declarations, eg. */
+       /* void (* my_event) (ModestStoreWidget* obj); */
+};
+
+/* member functions */
+GType        modest_store_widget_get_type    (void) G_GNUC_CONST;
+
+GtkWidget*   modest_store_widget_new         (ModestWidgetFactory *factory,
+                                             const gchar* proto);
+
+gboolean       modest_store_widget_get_remember_password (ModestStoreWidget *self);
+const gchar*   modest_store_widget_get_username          (ModestStoreWidget *self);
+const gchar*   modest_store_widget_get_servername        (ModestStoreWidget *self);
+const gchar*   modest_store_widget_get_proto             (ModestStoreWidget *self);
+
+G_END_DECLS
+
+#endif /* __MODEST_STORE_WIDGET_H__ */
+
diff --git a/src/maemo/modest-transport-widget.c b/src/maemo/modest-transport-widget.c
new file mode 100644 (file)
index 0000000..20a6681
--- /dev/null
@@ -0,0 +1,246 @@
+/* modest-transport-widget.c */
+
+/* insert (c)/licensing information) */
+
+#include <glib/gi18n.h>
+#include "modest-transport-widget.h"
+#include <string.h>
+
+/* 'private'/'protected' functions */
+static void modest_transport_widget_class_init (ModestTransportWidgetClass *klass);
+static void modest_transport_widget_init       (ModestTransportWidget *obj);
+static void modest_transport_widget_finalize   (GObject *obj);
+/* list my signals  */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+typedef struct _ModestTransportWidgetPrivate ModestTransportWidgetPrivate;
+struct _ModestTransportWidgetPrivate {
+
+       gchar *proto;
+       ModestWidgetFactory *factory;
+
+       GtkWidget *servername;
+       GtkWidget *username;
+       GtkWidget *auth;
+       GtkWidget *remember_pwd;
+
+};
+#define MODEST_TRANSPORT_WIDGET_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                                     MODEST_TYPE_TRANSPORT_WIDGET, \
+                                                     ModestTransportWidgetPrivate))
+/* globals */
+static GtkContainerClass *parent_class = NULL;
+
+/* uncomment the following if you have defined any signals */
+/* static guint signals[LAST_SIGNAL] = {0}; */
+
+GType
+modest_transport_widget_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestTransportWidgetClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_transport_widget_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestTransportWidget),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_transport_widget_init,
+                       NULL
+               };
+               my_type = g_type_register_static (GTK_TYPE_VBOX,
+                                                 "ModestTransportWidget",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+static void
+modest_transport_widget_class_init (ModestTransportWidgetClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_transport_widget_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestTransportWidgetPrivate));
+
+       /* signal definitions go here, e.g.: */
+/*     signals[MY_SIGNAL_1] = */
+/*             g_signal_new ("my_signal_1",....); */
+/*     signals[MY_SIGNAL_2] = */
+/*             g_signal_new ("my_signal_2",....); */
+/*     etc. */
+}
+
+static void
+modest_transport_widget_init (ModestTransportWidget *obj)
+{
+       ModestTransportWidgetPrivate *priv;
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(obj); 
+       
+       priv->proto = NULL;
+}
+
+static void
+modest_transport_widget_finalize (GObject *obj)
+{
+       ModestTransportWidgetPrivate *priv;
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(obj);
+       
+       if (priv->factory) {
+               g_object_unref (priv->factory);
+               priv->factory = NULL;
+       }
+
+       if (priv->proto) {
+               g_free (priv->proto);
+               priv->proto = NULL;
+       }
+
+       G_OBJECT_CLASS(parent_class)->finalize (obj);
+}
+
+
+static GtkWidget*
+smtp_configuration (ModestTransportWidget *self)
+{
+       ModestTransportWidgetPrivate *priv;
+       GtkWidget *label, *box, *hbox;
+       
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
+       box = gtk_vbox_new (FALSE, 6);
+       
+       label = gtk_label_new (NULL);
+       gtk_label_set_markup (GTK_LABEL(label),
+                             _("<b>SMTP configuration</b>"));  
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 6);
+
+       priv->servername = gtk_entry_new_with_max_length (40);
+       
+       hbox = gtk_hbox_new (FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox), gtk_label_new (_("Servername: ")),
+                           FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox), priv->servername,
+                           TRUE, TRUE, 6);
+       gtk_box_pack_start (GTK_BOX(box), hbox, TRUE, TRUE, 6);
+
+       priv->auth = gtk_check_button_new_with_label (_("Requires authentication"));
+       gtk_box_pack_start (GTK_BOX(box), priv->auth, TRUE, FALSE, 6);
+       
+       label = gtk_label_new(NULL);
+       gtk_label_set_markup (GTK_LABEL(label),_("<b>Security</b>"));
+       gtk_box_pack_start (GTK_BOX(box), label, FALSE, FALSE, 0);
+
+       hbox = gtk_hbox_new (FALSE, 6);
+       label = gtk_label_new(NULL);
+       gtk_label_set_text (GTK_LABEL(label),_("Connection type:"));
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX(hbox),  modest_widget_factory_get_combo_box
+                           (priv->factory, MODEST_COMBO_BOX_TYPE_SECURITY_PROTOS),
+                           FALSE, FALSE,0);
+       gtk_box_pack_start (GTK_BOX(box), hbox, FALSE, FALSE, 0);
+       
+       hbox = gtk_hbox_new (FALSE, 6);
+       label = gtk_label_new(NULL);
+
+       gtk_label_set_text (GTK_LABEL(label),_("Authentication:"));
+       gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 6);
+       gtk_box_pack_start (GTK_BOX(hbox),   modest_widget_factory_get_combo_box
+                           (priv->factory, MODEST_COMBO_BOX_TYPE_AUTH_PROTOS),
+                           FALSE, FALSE, 0);
+       priv->remember_pwd =
+               gtk_check_button_new_with_label (_("Remember password"));
+       gtk_box_pack_start (GTK_BOX(hbox),priv->remember_pwd,
+                           FALSE, FALSE, 0);   
+       return box;
+}
+
+
+
+GtkWidget*
+modest_transport_widget_new (ModestWidgetFactory *factory, const gchar* proto)
+{
+       GObject *obj;
+       GtkWidget *w;
+       ModestTransportWidget *self;
+       ModestTransportWidgetPrivate *priv;
+       
+       g_return_val_if_fail (proto, NULL);
+       g_return_val_if_fail (factory, NULL);
+
+       obj = g_object_new(MODEST_TYPE_TRANSPORT_WIDGET, NULL);
+       self = MODEST_TRANSPORT_WIDGET(obj);
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
+
+       g_object_ref (factory);
+       priv->factory = factory;
+
+       priv->proto = g_strdup (proto);
+       
+       if (strcmp (proto, MODEST_PROTOCOL_TRANSPORT_SMTP) == 0) {
+               w = smtp_configuration (self);
+       } else
+               w = gtk_label_new ("");
+       
+       gtk_widget_show_all (w);
+       gtk_box_pack_start (GTK_BOX(self), w, FALSE, FALSE, 2);
+
+       return GTK_WIDGET(self);
+}
+
+
+gboolean
+modest_transport_widget_get_remember_password (ModestTransportWidget *self)
+{
+       ModestTransportWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, FALSE);
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
+
+       return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(priv->remember_pwd));
+}
+
+
+const gchar*
+modest_transport_widget_get_username (ModestTransportWidget *self)
+{
+       ModestTransportWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, NULL);
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
+       
+       return gtk_entry_get_text (GTK_ENTRY(priv->username));
+}
+
+const gchar*
+modest_transport_widget_get_servername (ModestTransportWidget *self)
+{
+       ModestTransportWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, NULL);
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
+       
+       return gtk_entry_get_text (GTK_ENTRY(priv->servername));
+}
+
+
+const gchar*
+modest_transport_widget_get_proto (ModestTransportWidget *self)
+{
+       ModestTransportWidgetPrivate *priv;
+
+       g_return_val_if_fail (self, FALSE);
+       priv = MODEST_TRANSPORT_WIDGET_GET_PRIVATE(self);
+
+       return priv->proto;
+}
+
diff --git a/src/maemo/modest-transport-widget.h b/src/maemo/modest-transport-widget.h
new file mode 100644 (file)
index 0000000..f72e971
--- /dev/null
@@ -0,0 +1,47 @@
+/* modest-transport-widget.h */
+/* insert (c)/licensing information) */
+
+#ifndef __MODEST_TRANSPORT_WIDGET_H__
+#define __MODEST_TRANSPORT_WIDGET_H__
+
+#include <gtk/gtk.h>
+#include <modest-widget-factory.h>
+
+G_BEGIN_DECLS
+
+/* convenience macros */
+#define MODEST_TYPE_TRANSPORT_WIDGET             (modest_transport_widget_get_type())
+#define MODEST_TRANSPORT_WIDGET(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),MODEST_TYPE_TRANSPORT_WIDGET,ModestTransportWidget))
+#define MODEST_TRANSPORT_WIDGET_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),MODEST_TYPE_TRANSPORT_WIDGET,GtkContainer))
+#define MODEST_IS_TRANSPORT_WIDGET(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),MODEST_TYPE_TRANSPORT_WIDGET))
+#define MODEST_IS_TRANSPORT_WIDGET_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),MODEST_TYPE_TRANSPORT_WIDGET))
+#define MODEST_TRANSPORT_WIDGET_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),MODEST_TYPE_TRANSPORT_WIDGET,ModestTransportWidgetClass))
+
+typedef struct _ModestTransportWidget      ModestTransportWidget;
+typedef struct _ModestTransportWidgetClass ModestTransportWidgetClass;
+
+struct _ModestTransportWidget {
+        GtkVBox parent;
+       /* insert public members, if any */
+};
+
+struct _ModestTransportWidgetClass {
+       GtkVBoxClass parent_class;
+       /* insert signal callback declarations, eg. */
+       /* void (* my_event) (ModestTransportWidget* obj); */
+};
+
+/* member functions */
+GType        modest_transport_widget_get_type    (void) G_GNUC_CONST;
+
+GtkWidget*   modest_transport_widget_new         (ModestWidgetFactory *factory, const gchar *proto);
+
+gboolean       modest_transport_widget_get_remember_password (ModestTransportWidget *self);
+const gchar*   modest_transport_widget_get_username          (ModestTransportWidget *self);
+const gchar*   modest_transport_widget_get_servername        (ModestTransportWidget *self);
+const gchar*   modest_transport_widget_get_proto             (ModestTransportWidget *self);
+
+G_END_DECLS
+
+#endif /* __MODEST_TRANSPORT_WIDGET_H__ */
+
diff --git a/src/maemo/modest-ui.c b/src/maemo/modest-ui.c
new file mode 100644 (file)
index 0000000..3f06bad
--- /dev/null
@@ -0,0 +1,208 @@
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ *   contributors may be used to endorse or promote products derived from
+ *   this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <glib/gi18n.h>
+#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /*HAVE_CONFIG_H*/
+
+#include "../modest-ui.h"
+#include "../modest-account-mgr.h"
+#include "../modest-widget-factory.h"
+#include "modest-main-window.h"
+#include "modest-tny-platform-factory.h"
+
+
+/* 'private'/'protected' functions */
+static void   modest_ui_class_init     (ModestUIClass *klass);
+static void   modest_ui_init           (ModestUI *obj);
+static void   modest_ui_finalize       (GObject *obj);
+
+gchar *on_password_requested (TnyAccountIface *, const gchar *, gboolean *);
+
+
+typedef struct _ModestUIPrivate ModestUIPrivate;
+struct _ModestUIPrivate {
+       ModestWidgetFactory   *widget_factory;  
+
+       GtkWidget              *main_window;
+};
+
+#define MODEST_UI_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
+                                       MODEST_TYPE_UI, \
+                                       ModestUIPrivate))
+
+
+/* list my signals */
+enum {
+       /* MY_SIGNAL_1, */
+       /* MY_SIGNAL_2, */
+       LAST_SIGNAL
+};
+
+/* globals */
+static GObjectClass *parent_class = NULL;
+
+
+GType
+modest_ui_get_type (void)
+{
+       static GType my_type = 0;
+       if (!my_type) {
+               static const GTypeInfo my_info = {
+                       sizeof(ModestUIClass),
+                       NULL,           /* base init */
+                       NULL,           /* base finalize */
+                       (GClassInitFunc) modest_ui_class_init,
+                       NULL,           /* class finalize */
+                       NULL,           /* class data */
+                       sizeof(ModestUI),
+                       1,              /* n_preallocs */
+                       (GInstanceInitFunc) modest_ui_init,
+                       NULL
+               };
+               my_type = g_type_register_static (G_TYPE_OBJECT,
+                                                 "ModestUI",
+                                                 &my_info, 0);
+       }
+       return my_type;
+}
+
+
+static void
+modest_ui_class_init (ModestUIClass *klass)
+{
+       GObjectClass *gobject_class;
+       gobject_class = (GObjectClass*) klass;
+
+       parent_class            = g_type_class_peek_parent (klass);
+       gobject_class->finalize = modest_ui_finalize;
+
+       g_type_class_add_private (gobject_class, sizeof(ModestUIPrivate));
+
+}
+
+
+static void
+modest_ui_init (ModestUI *obj)
+{
+       ModestUIPrivate *priv;
+
+       priv = MODEST_UI_GET_PRIVATE(obj);
+
+       priv->widget_factory = NULL;
+
+       priv->main_window    = NULL;
+}
+
+
+static void
+modest_ui_finalize (GObject *obj)
+{
+       
+       ModestUIPrivate *priv = MODEST_UI_GET_PRIVATE(obj);
+
+       if (priv->widget_factory) {
+               g_object_unref (G_OBJECT(priv->widget_factory));
+               priv->widget_factory = NULL;
+       }
+}
+
+
+ModestUI*
+modest_ui_new (void)
+{
+       GObject *obj;
+       ModestUIPrivate *priv;
+       TnyPlatformFactory *fact;
+       ModestAccountMgr *account_mgr;
+       TnyAccountStore *account_store;
+
+       obj  = g_object_new(MODEST_TYPE_UI, NULL);
+       priv = MODEST_UI_GET_PRIVATE(obj);
+
+       /* Get the platform-dependent instances */
+       fact = modest_tny_platform_factory_get_instance ();
+       
+       account_mgr = modest_tny_platform_factory_get_modest_account_mgr_instance (fact);
+       if (!account_mgr) {
+               g_printerr ("modest: could not create ModestAccountMgr instance\n");
+               g_object_unref (obj);
+               return NULL;
+        }
+
+       account_store = tny_platform_factory_new_account_store (fact);
+       if (!account_store) {
+               g_printerr ("modest: could not initialze ModestTnyAccountStore instance\n");
+               return NULL;
+        }
+
+       priv->widget_factory = modest_widget_factory_new ();
+       if (!priv->widget_factory) {
+               g_printerr ("modest: could not initialize widget factory\n");
+               return NULL;
+       }
+               
+       return MODEST_UI(obj);
+}
+
+static gboolean
+on_main_window_destroy (GtkObject *widget, ModestUI *self)
+{
+       /* FIXME: check if there any viewer/editing windows opened */
+       gtk_main_quit ();
+       return FALSE;
+}
+
+
+GtkWidget*
+modest_ui_main_window (ModestUI *modest_ui)
+{
+       ModestUIPrivate *priv;
+
+       g_return_val_if_fail (modest_ui, NULL);
+       priv = MODEST_UI_GET_PRIVATE(modest_ui);
+
+       if (!priv->main_window) {
+               priv->main_window =
+                       modest_main_window_new (priv->widget_factory);
+               g_signal_connect (G_OBJECT(priv->main_window), "destroy",
+                                 G_CALLBACK(on_main_window_destroy), modest_ui);
+
+       }
+               
+       if (!priv->main_window)
+               g_printerr ("modest: could not create main window\n");
+       
+       return priv->main_window;
+}
diff --git a/src/maemo/pixmaps/back.svg b/src/maemo/pixmaps/back.svg
new file mode 100644 (file)
index 0000000..f1eb977
--- /dev/null
@@ -0,0 +1,852 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-previous.svg"
+   sodipodi:docbase="/home/andreas/projekt/tango/scalable"
+   inkscape:version="0.42+0.43pre2"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient2591">
+      <stop
+         style="stop-color:#73d216"
+         offset="0"
+         id="stop2593" />
+      <stop
+         style="stop-color:#4e9a06"
+         offset="1.0000000"
+         id="stop2595" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10314">
+      <stop
+         style="stop-color:#7ea5d6;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop10316" />
+      <stop
+         style="stop-color:#467ec5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop10318" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8938">
+      <stop
+         id="stop8940"
+         offset="0.0000000"
+         style="stop-color:#fdc674;stop-opacity:1.0000000;" />
+      <stop
+         id="stop8942"
+         offset="1.0000000"
+         style="stop-color:#d88103;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7636"
+       inkscape:collect="always">
+      <stop
+         id="stop7638"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop7640"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7614">
+      <stop
+         id="stop7616"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.21590909"
+         id="stop7649" />
+      <stop
+         style="stop-color:#838383;stop-opacity:1.0000000;"
+         offset="0.50000000"
+         id="stop7632" />
+      <stop
+         id="stop7618"
+         offset="1"
+         style="stop-color:#838383;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7608">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop7610" />
+      <stop
+         id="stop7622"
+         offset="0.46022728"
+         style="stop-color:#e3e3e3;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#dadada;stop-opacity:0.67058824;"
+         offset="0.61970556"
+         id="stop7624" />
+      <stop
+         style="stop-color:#d1d1d1;stop-opacity:0.34285715;"
+         offset="1.0000000"
+         id="stop7612" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7602">
+      <stop
+         id="stop7604"
+         offset="0.0000000"
+         style="stop-color:#f6f6f6;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7606"
+         offset="1.0000000"
+         style="stop-color:#e0e0e0;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient7586">
+      <stop
+         id="stop7588"
+         offset="0.0000000"
+         style="stop-color:#525252;stop-opacity:1.0000000;" />
+      <stop
+         id="stop7590"
+         offset="1.0000000"
+         style="stop-color:#000000;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient12836">
+      <stop
+         style="stop-color:#515152;stop-opacity:1;"
+         offset="0"
+         id="stop12838" />
+      <stop
+         style="stop-color:#515152;stop-opacity:0;"
+         offset="1"
+         id="stop12840" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12828">
+      <stop
+         style="stop-color:#cccccd;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop12830" />
+      <stop
+         id="stop12862"
+         offset="0.0000000"
+         style="stop-color:#adadae;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#8f8f90;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop12832" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient12810">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop12812" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop12814" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11625">
+      <stop
+         style="stop-color:#fce94f;stop-opacity:1;"
+         offset="0"
+         id="stop11627" />
+      <stop
+         style="stop-color:#fce94f;stop-opacity:0;"
+         offset="1"
+         id="stop11629" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11615">
+      <stop
+         style="stop-color:#636363;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11617" />
+      <stop
+         style="stop-color:#000000;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11619" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11602">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11604" />
+      <stop
+         style="stop-color:#c5c5c5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11606" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11594">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop11596" />
+      <stop
+         style="stop-color:#d1d1d1;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11598" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11520">
+      <stop
+         style="stop-color:#fbfbfb;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop11522" />
+      <stop
+         style="stop-color:#dcdcdc;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop11524" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11508">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11510" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11512" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11494">
+      <stop
+         style="stop-color:#ef2929;stop-opacity:1;"
+         offset="0"
+         id="stop11496" />
+      <stop
+         style="stop-color:#ef2929;stop-opacity:0;"
+         offset="1"
+         id="stop11498" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11415">
+      <stop
+         style="stop-color:#204a87;stop-opacity:0.0000000;"
+         offset="0.0000000"
+         id="stop11417" />
+      <stop
+         id="stop11423"
+         offset="0.50000000"
+         style="stop-color:#204a87;stop-opacity:1.0000000;" />
+      <stop
+         style="stop-color:#204a87;stop-opacity:0;"
+         offset="1"
+         id="stop11419" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient11399">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop11401" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop11403" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11415"
+       id="linearGradient11425"
+       gradientUnits="userSpaceOnUse"
+       x1="15.828360"
+       y1="3.7744560"
+       x2="43.615788"
+       y2="34.462429"
+       gradientTransform="translate(-60.28571,-0.285714)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11415"
+       id="linearGradient11427"
+       gradientUnits="userSpaceOnUse"
+       x1="9.6957054"
+       y1="9.3458843"
+       x2="35.679932"
+       y2="39.033859"
+       gradientTransform="translate(-60.57143,0.000000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11415"
+       id="linearGradient11439"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-60.85714,0.428571)"
+       x1="13.267134"
+       y1="19.774456"
+       x2="26.758644"
+       y2="33.462429" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11399"
+       id="radialGradient11441"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.487395,0.000000,20.06483)"
+       cx="12.071428"
+       cy="39.142857"
+       fx="12.071428"
+       fy="39.142857"
+       r="8.5000000" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11494"
+       id="radialGradient11500"
+       cx="27.577173"
+       cy="15.048258"
+       fx="27.577173"
+       fy="15.048258"
+       r="3.8335034"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11494"
+       id="radialGradient11504"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.243453,2.106784e-16,-2.106784e-16,1.243453,-6.713754,-3.742847)"
+       cx="27.577173"
+       cy="16.049133"
+       fx="27.577173"
+       fy="16.049133"
+       r="3.8335034" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11508"
+       id="radialGradient11514"
+       cx="30.203562"
+       cy="44.565483"
+       fx="30.203562"
+       fy="44.565483"
+       r="6.5659914"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,2.166583e-14,29.48178)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11520"
+       id="radialGradient11526"
+       cx="24.445690"
+       cy="35.878170"
+       fx="24.445690"
+       fy="35.878170"
+       r="20.530962"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.995058,-1.535926e-32,0.000000,1.855412,24.94925,-30.20430)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11508"
+       id="radialGradient11532"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.338462,-5.348412e-14,29.48178)"
+       cx="30.203562"
+       cy="44.565483"
+       fx="30.203562"
+       fy="44.565483"
+       r="6.5659914" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11594"
+       id="linearGradient11600"
+       x1="20.092352"
+       y1="8.9471626"
+       x2="31.799011"
+       y2="38.947163"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.045319,0.000000,0.000000,0.957884,48.16627,1.415543)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11520"
+       id="linearGradient11608"
+       x1="24.445671"
+       y1="0.49847093"
+       x2="24.445671"
+       y2="39.447163"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.984324,0.000000,0.000000,0.957884,49.65734,1.415543)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11615"
+       id="radialGradient11621"
+       cx="25.000000"
+       cy="27.749998"
+       fx="25.000000"
+       fy="27.749998"
+       r="4.7500000"
+       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11631"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11635"
+       gradientUnits="userSpaceOnUse"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000"
+       gradientTransform="translate(2.000000,0.000000)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11639"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11643"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11647"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(8.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11655"
+       gradientUnits="userSpaceOnUse"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11657"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11659"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient11661"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12816"
+       x1="65.623963"
+       y1="21.459777"
+       x2="87.528968"
+       y2="21.459777"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12818"
+       gradientUnits="userSpaceOnUse"
+       x1="84.998962"
+       y1="25.209778"
+       x2="62.591469"
+       y2="12.022278" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12828"
+       id="radialGradient12834"
+       cx="88.593018"
+       cy="33.398670"
+       fx="88.593018"
+       fy="33.398670"
+       r="7.0056136"
+       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12836"
+       id="linearGradient12842"
+       x1="88.750000"
+       y1="31.656250"
+       x2="92.062500"
+       y2="36.656250"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12878"
+       gradientUnits="userSpaceOnUse"
+       x1="65.623963"
+       y1="21.459777"
+       x2="87.528968"
+       y2="21.459777" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12836"
+       id="linearGradient12880"
+       gradientUnits="userSpaceOnUse"
+       x1="88.750000"
+       y1="31.656250"
+       x2="92.062500"
+       y2="36.656250" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12828"
+       id="radialGradient12882"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.969219,0.227988,-0.194668,0.827570,9.443870,-15.99848)"
+       cx="88.593018"
+       cy="33.398670"
+       fx="88.593018"
+       fy="33.398670"
+       r="7.0056136" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12810"
+       id="linearGradient12884"
+       gradientUnits="userSpaceOnUse"
+       x1="84.998962"
+       y1="25.209778"
+       x2="62.591469"
+       y2="12.022278" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11615"
+       id="radialGradient12894"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.570338,3.171097e-15,-4.005596e-15,4.509900,-64.25843,-94.25499)"
+       cx="25.000000"
+       cy="27.749998"
+       fx="25.000000"
+       fy="27.749998"
+       r="4.7500000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12896"
+       gradientUnits="userSpaceOnUse"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000"
+       gradientTransform="translate(7.267442e-2,-0.181686)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12898"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12902"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(6.000000,0.000000)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12911"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(7.267442e-2,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12913"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(2.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11625"
+       id="linearGradient12915"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.072674,-0.181686)"
+       x1="21.500000"
+       y1="30.000000"
+       x2="21.500000"
+       y2="27.375000" />
+    <linearGradient
+       y2="21.067410"
+       x2="24.445690"
+       y1="33.447811"
+       x1="31.597168"
+       gradientTransform="matrix(0.476329,0.000000,0.000000,0.627721,62.07560,9.156933)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7584"
+       xlink:href="#linearGradient11594"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.407878,2.776254e-16,-5.900875e-16,1.861050,14.96976,-20.55775)"
+       r="6.0270013"
+       fy="29.099535"
+       fx="24.399090"
+       cy="29.099535"
+       cx="24.399090"
+       id="radialGradient7592"
+       xlink:href="#linearGradient7586"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="11.042997"
+       x2="22.585604"
+       y1="34.149513"
+       x1="22.585604"
+       gradientTransform="matrix(1.059222,0.000000,0.000000,0.808101,48.08657,4.001391)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient7596"
+       xlink:href="#linearGradient7608"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientTransform="translate(49.32070,0.000000)"
+       gradientUnits="userSpaceOnUse"
+       y2="38.454056"
+       x2="28.284273"
+       y1="28.554562"
+       x1="25.279068"
+       id="linearGradient7642"
+       xlink:href="#linearGradient7636"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.777122,-8.126449e-2,6.891211e-2,2.223012,4.035118,-33.24798)"
+       r="4.4774761"
+       fy="29.609560"
+       fx="24.483574"
+       cy="29.609560"
+       cx="24.483574"
+       id="radialGradient7647"
+       xlink:href="#linearGradient7614"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.046729,-3.749427e-16,-2.853404e-16,1.557610,67.59375,3.275309)"
+       r="17.171415"
+       fy="5.7859797"
+       fx="25.075571"
+       cy="5.7859797"
+       cx="25.075571"
+       id="radialGradient8656"
+       xlink:href="#linearGradient8650"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,6.772795e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2591"
+       id="radialGradient2597"
+       cx="22.291636"
+       cy="32.797512"
+       fx="22.291636"
+       fy="32.797512"
+       r="16.956199"
+       gradientTransform="matrix(-0.843022,1.871885e-16,2.265228e-16,1.020168,43.57646,1.205215)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="25"
+     inkscape:window-x="0"
+     inkscape:window-height="885"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="25.461494"
+     inkscape:cx="25.558072"
+     inkscape:zoom="16"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:title>Go Previous</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>previous</rdf:li>
+            <rdf:li>left</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&lt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(-1.271186,0.000000,0.000000,1.271186,56.19514,-15.27857)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946521;color:#000000;fill:url(#radialGradient8668);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 39.490316,15.496821 L 39.490316,32.491241 L 26.537753,32.491241 L 26.537753,40.973779 L 6.577917,23.973588 L 26.531563,6.7295901 L 26.531563,15.502125 L 39.490316,15.496821 z "
+       style="opacity:1.0000000;color:#000000;fill:url(#radialGradient2597);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.0000004;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path8645"
+       d="M 25.988368,7.9779766 L 25.988368,16.034451 L 38.930538,16.034451 L 38.930538,24.918914 C 22.180538,18.668914 22.797001,30.213626 7.547,23.963626 L 25.988368,7.9779766 z "
+       style="opacity:0.50802141;color:#000000;fill:url(#radialGradient8656);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128340;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000004;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10.000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 38.475551,16.541365 L 38.475551,31.463305 L 25.490184,31.463305 L 25.490184,38.764721 L 8.168419,23.96903 L 25.506145,9.0636299 L 25.506145,16.546262 L 38.475551,16.541365 z "
+       id="path8658"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/edit-delete.svg b/src/maemo/pixmaps/edit-delete.svg
new file mode 100644 (file)
index 0000000..146d32d
--- /dev/null
@@ -0,0 +1,882 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg57"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   sodipodi:docname="edit-delete.svg">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient3241">
+      <stop
+         style="stop-color:white;stop-opacity:1;"
+         offset="0"
+         id="stop3243" />
+      <stop
+         style="stop-color:white;stop-opacity:0;"
+         offset="1"
+         id="stop3245" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3229">
+      <stop
+         style="stop-color:#598bcb;stop-opacity:1;"
+         offset="0"
+         id="stop3231" />
+      <stop
+         id="stop3249"
+         offset="0.75675678"
+         style="stop-color:#2f5c96;stop-opacity:1;" />
+      <stop
+         style="stop-color:#203e65;stop-opacity:1;"
+         offset="1"
+         id="stop3233" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3175">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop3177" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop3179" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient3159">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop3161" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop3163" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3141">
+      <stop
+         style="stop-color:#a40000;stop-opacity:1;"
+         offset="0"
+         id="stop3143" />
+      <stop
+         style="stop-color:#ffc4c4;stop-opacity:1;"
+         offset="1"
+         id="stop3145" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3008">
+      <stop
+         style="stop-color:white;stop-opacity:1;"
+         offset="0"
+         id="stop3010" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1;"
+         offset="1"
+         id="stop3012" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2978">
+      <stop
+         style="stop-color:white;stop-opacity:1;"
+         offset="0"
+         id="stop2980" />
+      <stop
+         style="stop-color:#d5d5d5;stop-opacity:1;"
+         offset="1"
+         id="stop2982" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2964">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop2966" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop2968" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6719"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient6717"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient6715"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient381">
+      <stop
+         id="stop382"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop383"
+         offset="1"
+         style="stop-color:white;stop-opacity:0.84466022;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient368">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.10309278;"
+         offset="0.0000000"
+         id="stop369" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop372" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1065">
+      <stop
+         style="stop-color:#b5c051;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop1066" />
+      <stop
+         style="stop-color:#858e3f;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop1067" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient172">
+      <stop
+         id="stop173"
+         offset="0.0000000"
+         style="stop-color:#616c08;stop-opacity:1.0000000;" />
+      <stop
+         id="stop174"
+         offset="1.0000000"
+         style="stop-color:#495106;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient161">
+      <stop
+         id="stop162"
+         offset="0.0000000"
+         style="stop-color:#575955;stop-opacity:1.0000000;" />
+      <stop
+         id="stop163"
+         offset="1.0000000"
+         style="stop-color:#7c7e79;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient157">
+      <stop
+         id="stop158"
+         offset="0.0000000"
+         style="stop-color:#babdb6;stop-opacity:1.0000000;" />
+      <stop
+         id="stop159"
+         offset="1.0000000"
+         style="stop-color:#f1f5ec;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient149"
+       inkscape:collect="always">
+      <stop
+         id="stop150"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop151"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient1869">
+      <stop
+         style="stop-color:#c9c9c9;stop-opacity:1;"
+         offset="0"
+         id="stop1870" />
+      <stop
+         style="stop-color:#787a7b;stop-opacity:1;"
+         offset="1"
+         id="stop1871" />
+    </linearGradient>
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="69.460503"
+       x2="7.5291119"
+       y1="27.376621"
+       x1="7.3738608"
+       gradientTransform="matrix(3.495016,0,0,0.344323,-2.972087,-3.408148e-2)"
+       id="linearGradient152"
+       xlink:href="#linearGradient149"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient149"
+       id="linearGradient2058"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.520411,0,0,0.348016,-3.037918,1.544257)"
+       x1="7.3738608"
+       y1="27.376621"
+       x2="7.5291119"
+       y2="69.460503" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2964"
+       id="linearGradient2970"
+       x1="27.5"
+       y1="14"
+       x2="27.625"
+       y2="18.750015"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.799991,0,-1.199875)" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient2984"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-17.82887,-61.79699)"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient2988"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-16.18243,-61.79699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient2992"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-14.33255,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient2996"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-12.67991,-61.03155)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3000"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-10.78506,-60.99081)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3004"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-19.58362,-61.75172)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3008"
+       id="linearGradient3097"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.984533,0,0,1.203586,0.971903,-2.123191)"
+       x1="26.151339"
+       y1="-5.7401156"
+       x2="27.500387"
+       y2="13.351768" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3107"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-8.332562,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3111"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-6.332562,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3115"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-4.332562,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3119"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-2.332562,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3123"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,-0.332562,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3127"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,1.667438,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3131"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,3.667438,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2978"
+       id="radialGradient3135"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.146715,6.924886e-2,-6.039991e-2,2.744612,5.667438,-61.89699)"
+       cx="9.5796242"
+       cy="33.588264"
+       fx="9.5796242"
+       fy="33.588264"
+       r="2.5527742" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3141"
+       id="linearGradient3147"
+       x1="40.5"
+       y1="13.822797"
+       x2="40.5"
+       y2="16.877842"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3159"
+       id="linearGradient3165"
+       x1="23.5"
+       y1="12"
+       x2="23.5"
+       y2="6.6875"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3175"
+       id="linearGradient3181"
+       x1="25"
+       y1="21"
+       x2="25"
+       y2="32.25"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3229"
+       id="linearGradient3239"
+       gradientUnits="userSpaceOnUse"
+       x1="24.000006"
+       y1="15.837313"
+       x2="24.000006"
+       y2="21" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3241"
+       id="linearGradient3247"
+       x1="21.67791"
+       y1="19.969507"
+       x2="22.333523"
+       y2="11.643976"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     showborder="true"
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666"
+     borderopacity="0.13333333"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="44.598589"
+     inkscape:cy="39.043402"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="872"
+     inkscape:window-height="621"
+     inkscape:window-x="2291"
+     inkscape:window-y="156"
+     inkscape:showpageshadow="false"
+     gridempspacing="4"
+     inkscape:object-nodes="true"
+     inkscape:object-points="false"
+     inkscape:object-bbox="false"
+     inkscape:guide-bbox="false"
+     inkscape:grid-points="true"
+     inkscape:object-paths="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Delete</dc:title>
+        <dc:date></dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>delete</rdf:li>
+            <rdf:li>shredder</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <dc:publisher>
+          <cc:Agent>
+            <dc:title>Novell, Inc.</dc:title>
+          </cc:Agent>
+        </dc:publisher>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title></dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       style="display:inline"
+       transform="matrix(2.262383e-2,0,0,1.966248e-2,44.39519,41.98146)"
+       id="g6707">
+      <rect
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         id="rect6709"
+         width="1339.6335"
+         height="478.35718"
+         x="-1559.2523"
+         y="-150.69685" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         id="path6711"
+         sodipodi:nodetypes="cccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path6713"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    </g>
+    <path
+       style="opacity:0.38659794;color:black;fill:url(#linearGradient3181);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.75,21 L 43.25,21 L 42.375,32.25 L 5.625,32.25 L 4.75,21 z "
+       id="path3173" />
+    <path
+       style="fill:#babdb6;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.5"
+       d="M 4.000805,16.500028 C 3.9568443,16.464574 5.7277298,42.005521 5.7282343,42.013263 C 5.8943636,44.563961 7.2889479,45.496198 8.8498899,45.499996 C 8.9056682,45.500127 38.133934,45.496713 38.756644,45.494055 C 41.385341,45.482836 42.029344,43.859472 42.202267,42.085776 C 42.216136,42.050805 43.986115,16.535 43.999982,16.500028 C 30.666924,16.500028 17.333866,16.500028 4.000805,16.500028 z "
+       id="path1751"
+       sodipodi:nodetypes="ccccccc"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="opacity:0.23711338;color:black;fill:url(#linearGradient2058);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+       d="M 43.457954,20.712669 L 7.2079371,20.689264 C 34.519247,21.326592 39.885144,24.337412 43.214187,24.183575 L 43.457954,20.712669 z "
+       id="path1893"
+       sodipodi:nodetypes="cccc"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       id="g3199"
+       style="opacity:0.12886598;fill:black;fill-opacity:1;stroke:black;stroke-width:1.3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       transform="translate(8.838865e-2,8.838865e-2)">
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3201"
+         d="M 29.163487,19.614074 C 29.163487,19.614074 30.279473,23.33545 29.517144,26.348054 C 28.754815,29.360658 29.269248,34.210167 29.269248,34.210167 L 30.884373,34.634373 C 30.884373,34.634373 30.117495,30.028639 30.931357,26.524831 C 31.745219,23.021023 30.577814,19.614988 30.577814,19.614988 L 29.163487,19.614074 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3203"
+         d="M 9.9124168,19.759341 C 9.9124168,19.759341 11.028404,23.480717 10.266074,26.493321 C 9.5037448,29.505925 10.018178,34.355434 10.018178,34.355434 L 11.456527,33.807368 C 11.456527,33.807368 10.866426,30.173906 11.680288,26.670098 C 12.49415,23.16629 11.326745,19.760255 11.326745,19.760255 L 9.9124168,19.759341 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 11.66716,19.714074 C 11.66716,19.714074 12.783146,23.43545 12.020817,26.448054 C 11.258488,29.460658 8.617841,31.76449 8.617841,31.76449 L 9.8260378,33.73022 C 9.8260378,33.73022 12.621168,30.128639 13.43503,26.624831 C 14.248892,23.121023 13.081487,19.714988 13.081487,19.714988 L 11.66716,19.714074 z "
+         id="path3205"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3207"
+         d="M 21.163487,19.614074 C 21.163487,19.614074 22.279473,23.33545 21.517144,26.348054 C 20.754815,29.360658 21.269248,34.210167 21.269248,34.210167 L 22.928567,34.766955 C 22.928567,34.766955 22.117495,30.028639 22.931357,26.524831 C 23.745219,23.021023 22.577814,19.614988 22.577814,19.614988 L 21.163487,19.614074 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 35.163487,19.614074 C 35.163487,19.614074 36.279473,23.33545 35.517144,26.348054 C 34.754815,29.360658 36.550879,33.50306 36.550879,33.50306 L 38.077615,32.292082 C 38.077615,32.292082 36.117495,30.028639 36.931357,26.524831 C 37.745219,23.021023 36.577814,19.614988 36.577814,19.614988 L 35.163487,19.614074 z "
+         id="path3209"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 31.163487,19.614074 C 31.163487,19.614074 32.279473,23.33545 31.517144,26.348054 C 30.754815,29.360658 31.269248,34.210167 31.269248,34.210167 L 32.795984,34.148237 C 32.795984,34.148237 32.117495,30.028639 32.931357,26.524831 C 33.745219,23.021023 32.577814,19.614988 32.577814,19.614988 L 31.163487,19.614074 z "
+         id="path3211"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3213"
+         d="M 33.163487,19.614074 C 33.163487,19.614074 34.279473,23.33545 33.517144,26.348054 C 32.754815,29.360658 32.473753,34.03339 32.473753,34.03339 L 34.265654,34.457596 C 34.265654,34.457596 34.117495,30.028639 34.931357,26.524831 C 35.745219,23.021023 34.577814,19.614988 34.577814,19.614988 L 33.163487,19.614074 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 27.163487,19.614074 C 27.163487,19.614074 28.279473,23.33545 27.517144,26.348054 C 26.754815,29.360658 28.064743,33.989196 28.064743,33.989196 L 29.724062,33.308548 C 29.724062,33.308548 28.117495,30.028639 28.931357,26.524831 C 29.745219,23.021023 28.577814,19.614988 28.577814,19.614988 L 27.163487,19.614074 z "
+         id="path3215"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3217"
+         d="M 25.163487,19.614074 C 25.163487,19.614074 26.279473,23.33545 25.517144,26.348054 C 24.754815,29.360658 24.164394,34.077584 24.164394,34.077584 L 25.69113,34.280819 C 25.69113,34.280819 26.117495,30.028639 26.931357,26.524831 C 27.745219,23.021023 26.577814,19.614988 26.577814,19.614988 L 25.163487,19.614074 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 23.163487,19.614074 C 23.163487,19.614074 24.279473,23.33545 23.517144,26.348054 C 22.754815,29.360658 23.269248,34.210167 23.269248,34.210167 L 24.707596,33.662101 C 24.707596,33.662101 24.117495,30.028639 24.931357,26.524831 C 25.745219,23.021023 24.577814,19.614988 24.577814,19.614988 L 23.163487,19.614074 z "
+         id="path3219"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3221"
+         d="M 13.313608,19.714074 C 13.313608,19.714074 14.429594,23.43545 13.667265,26.448054 C 12.904936,29.460658 13.419369,34.310167 13.419369,34.310167 L 14.999517,34.698426 C 14.999517,34.698426 14.267616,30.128639 15.081478,26.624831 C 15.89534,23.121023 14.727935,19.714988 14.727935,19.714988 L 13.313608,19.714074 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 19.418083,20.520258 C 19.418083,20.520258 19.615714,24.129801 19.064633,27.254238 C 18.524861,30.31456 21.306417,34.496773 21.306417,34.496773 L 22.721163,33.86443 C 22.721163,33.86443 19.926762,31.248786 20.558759,27.078695 C 21.116432,23.399015 20.83241,20.521172 20.83241,20.521172 L 19.418083,20.520258 z "
+         id="path3223"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 15.163487,19.614074 C 15.163487,19.614074 16.279473,23.33545 15.517144,26.348054 C 14.754815,29.360658 15.269248,34.210167 15.269248,34.210167 L 16.707596,33.662101 C 16.707596,33.662101 16.117495,30.028639 16.931357,26.524831 C 17.745219,23.021023 16.577814,19.614988 16.577814,19.614988 L 15.163487,19.614074 z "
+         id="path3225"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3227"
+         d="M 16.816129,20.479515 C 16.816129,20.479515 17.932115,24.200891 17.169786,27.213495 C 16.407457,30.226099 14.726988,31.80438 14.726988,31.80438 L 15.964957,32.939804 C 15.964957,32.939804 17.770137,30.89408 18.583999,27.390272 C 19.397861,23.886464 18.230456,20.480429 18.230456,20.480429 L 16.816129,20.479515 z "
+         style="opacity:1;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1.3;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    </g>
+    <g
+       id="g3183">
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient3123);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 29.163487,19.614074 C 29.163487,19.614074 30.279473,23.33545 29.517144,26.348054 C 28.754815,29.360658 29.269248,34.210167 29.269248,34.210167 L 30.884373,34.634373 C 30.884373,34.634373 30.117495,30.028639 30.931357,26.524831 C 31.745219,23.021023 30.577814,19.614988 30.577814,19.614988 L 29.163487,19.614074 z "
+         id="path3121"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient3004);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 9.9124168,19.759341 C 9.9124168,19.759341 11.028404,23.480717 10.266074,26.493321 C 9.5037448,29.505925 10.018178,34.355434 10.018178,34.355434 L 11.456527,33.807368 C 11.456527,33.807368 10.866426,30.173906 11.680288,26.670098 C 12.49415,23.16629 11.326745,19.760255 11.326745,19.760255 L 9.9124168,19.759341 z "
+         id="path3002"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path2976"
+         d="M 11.66716,19.714074 C 11.66716,19.714074 12.783146,23.43545 12.020817,26.448054 C 11.258488,29.460658 8.617841,31.76449 8.617841,31.76449 L 9.8260378,33.73022 C 9.8260378,33.73022 12.621168,30.128639 13.43503,26.624831 C 14.248892,23.121023 13.081487,19.714988 13.081487,19.714988 L 11.66716,19.714074 z "
+         style="opacity:1;color:black;fill:url(#radialGradient2984);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient3107);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 21.163487,19.614074 C 21.163487,19.614074 22.279473,23.33545 21.517144,26.348054 C 20.754815,29.360658 21.269248,34.210167 21.269248,34.210167 L 22.928567,34.766955 C 22.928567,34.766955 22.117495,30.028639 22.931357,26.524831 C 23.745219,23.021023 22.577814,19.614988 22.577814,19.614988 L 21.163487,19.614074 z "
+         id="path3105"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3133"
+         d="M 35.163487,19.614074 C 35.163487,19.614074 36.279473,23.33545 35.517144,26.348054 C 34.754815,29.360658 36.550879,33.50306 36.550879,33.50306 L 38.077615,32.292082 C 38.077615,32.292082 36.117495,30.028639 36.931357,26.524831 C 37.745219,23.021023 36.577814,19.614988 36.577814,19.614988 L 35.163487,19.614074 z "
+         style="opacity:1;color:black;fill:url(#radialGradient3135);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3125"
+         d="M 31.163487,19.614074 C 31.163487,19.614074 32.279473,23.33545 31.517144,26.348054 C 30.754815,29.360658 31.269248,34.210167 31.269248,34.210167 L 32.795984,34.148237 C 32.795984,34.148237 32.117495,30.028639 32.931357,26.524831 C 33.745219,23.021023 32.577814,19.614988 32.577814,19.614988 L 31.163487,19.614074 z "
+         style="opacity:1;color:black;fill:url(#radialGradient3127);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient3131);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 33.163487,19.614074 C 33.163487,19.614074 34.279473,23.33545 33.517144,26.348054 C 32.754815,29.360658 32.473753,34.03339 32.473753,34.03339 L 34.265654,34.457596 C 34.265654,34.457596 34.117495,30.028639 34.931357,26.524831 C 35.745219,23.021023 34.577814,19.614988 34.577814,19.614988 L 33.163487,19.614074 z "
+         id="path3129"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3117"
+         d="M 27.163487,19.614074 C 27.163487,19.614074 28.279473,23.33545 27.517144,26.348054 C 26.754815,29.360658 28.064743,33.989196 28.064743,33.989196 L 29.724062,33.308548 C 29.724062,33.308548 28.117495,30.028639 28.931357,26.524831 C 29.745219,23.021023 28.577814,19.614988 28.577814,19.614988 L 27.163487,19.614074 z "
+         style="opacity:1;color:black;fill:url(#radialGradient3119);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient3115);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 25.163487,19.614074 C 25.163487,19.614074 26.279473,23.33545 25.517144,26.348054 C 24.754815,29.360658 24.164394,34.077584 24.164394,34.077584 L 25.69113,34.280819 C 25.69113,34.280819 26.117495,30.028639 26.931357,26.524831 C 27.745219,23.021023 26.577814,19.614988 26.577814,19.614988 L 25.163487,19.614074 z "
+         id="path3113"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path3109"
+         d="M 23.163487,19.614074 C 23.163487,19.614074 24.279473,23.33545 23.517144,26.348054 C 22.754815,29.360658 23.269248,34.210167 23.269248,34.210167 L 24.707596,33.662101 C 24.707596,33.662101 24.117495,30.028639 24.931357,26.524831 C 25.745219,23.021023 24.577814,19.614988 24.577814,19.614988 L 23.163487,19.614074 z "
+         style="opacity:1;color:black;fill:url(#radialGradient3111);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient2988);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 13.313608,19.714074 C 13.313608,19.714074 14.429594,23.43545 13.667265,26.448054 C 12.904936,29.460658 13.419369,34.310167 13.419369,34.310167 L 14.999517,34.698426 C 14.999517,34.698426 14.267616,30.128639 15.081478,26.624831 C 15.89534,23.121023 14.727935,19.714988 14.727935,19.714988 L 13.313608,19.714074 z "
+         id="path2986"
+         sodipodi:nodetypes="csccscc" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path2998"
+         d="M 19.418083,20.520258 C 19.418083,20.520258 19.615714,24.129801 19.064633,27.254238 C 18.524861,30.31456 21.306417,34.496773 21.306417,34.496773 L 22.721163,33.86443 C 22.721163,33.86443 19.926762,31.248786 20.558759,27.078695 C 21.116432,23.399015 20.83241,20.521172 20.83241,20.521172 L 19.418083,20.520258 z "
+         style="opacity:1;color:black;fill:url(#radialGradient3000);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="csccscc"
+         id="path2990"
+         d="M 15.163487,19.614074 C 15.163487,19.614074 16.279473,23.33545 15.517144,26.348054 C 14.754815,29.360658 15.269248,34.210167 15.269248,34.210167 L 16.707596,33.662101 C 16.707596,33.662101 16.117495,30.028639 16.931357,26.524831 C 17.745219,23.021023 16.577814,19.614988 16.577814,19.614988 L 15.163487,19.614074 z "
+         style="opacity:1;color:black;fill:url(#radialGradient2992);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:1;color:black;fill:url(#radialGradient2996);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.4;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 16.816129,20.479515 C 16.816129,20.479515 17.932115,24.200891 17.169786,27.213495 C 16.407457,30.226099 14.726988,31.80438 14.726988,31.80438 L 15.964957,32.939804 C 15.964957,32.939804 17.770137,30.89408 18.583999,27.390272 C 19.397861,23.886464 18.230456,20.480429 18.230456,20.480429 L 16.816129,20.479515 z "
+         id="path2994"
+         sodipodi:nodetypes="csccscc" />
+    </g>
+    <path
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.62886598"
+       d="M 5.4146811,19.121548 C 5.3634244,19.121414 6.251433,31.93862 6.9569459,40.927803 C 7.1389508,43.235262 7.5088619,44.174409 8.9423077,44.174409 C 20.759131,44.174409 37.552947,44.260504 38.124794,44.258405 C 40.891299,44.248246 40.839524,43.220919 41.068645,41.038151 C 41.152053,40.243546 42.601147,19.210922 42.587323,19.210922 C 32.686245,19.210922 17.647791,19.153519 5.4146811,19.121548 z "
+       id="path375"
+       sodipodi:nodetypes="cssssss"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="fill:url(#linearGradient3239);fill-opacity:1;fill-rule:evenodd;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 7.1632325,6.56876 C 6.0964702,6.571197 5.2036739,6.59587 4.7173745,7.611591 C 4.6328517,7.788132 2.0564582,14.953189 1.9325929,15.226435 C 0.87218423,17.565665 1.8500978,20.512357 3.8982467,20.492628 C 4.2877543,20.488998 44.257346,20.510899 44.877144,20.492628 C 46.620636,20.442134 46.843746,17.029897 46.093184,15.494889 C 46.050663,15.407927 42.567223,7.513946 42.47838,7.374125 C 42.067463,6.749683 41.147252,6.476015 40.463708,6.501646 C 40.329055,6.506821 7.2964985,6.568457 7.1632325,6.56876 z "
+       id="path1841"
+       sodipodi:nodetypes="cssssscss"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="opacity:0.14948454;color:black;fill:#555753;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 4.79225,20.902176 L 7.2921692,20.902264 L 8.0580206,41.513138 L 7.2954771,44.586329 C 6.688538,44.099871 6.4168015,43.362011 6.2792295,42.523528 L 4.79225,20.902176 z "
+       id="path2956"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="opacity:0.42783505;color:black;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 8.0335688,41.611683 L 7.3212658,44.540568 C 7.7441291,44.765463 8.0570118,44.852829 8.5125475,45.007174 L 38.538428,44.978477 C 39.11735,44.938856 39.669098,44.912678 40.052766,44.806892 L 38.00699,41.370874 L 8.0335688,41.611683 z "
+       id="path2958"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="opacity:0.37113402;color:black;fill:#eeeeec;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 38.00699,41.370874 L 40.019489,44.815762 C 40.637691,44.552557 41.349831,44.091949 41.630912,42.961864 L 43.139311,20.94521 L 39.69211,20.942984 L 38.00699,41.370874 z "
+       id="path2960"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       sodipodi:type="inkscape:offset"
+       inkscape:radius="-1.0454103"
+       inkscape:original="M 40.46875 6.5 C 40.334098 6.505175 7.289516 6.562197 7.15625 6.5625 C 6.0894879 6.5649371 5.2050494 6.609279 4.71875 7.625 C 4.6342274 7.8015411 2.0613653 14.945504 1.9375 15.21875 C 0.87709136 17.55798 1.8581011 20.519729 3.90625 20.5 C 4.2957575 20.49637 44.255202 20.518271 44.875 20.5 C 46.618492 20.449506 46.844312 17.035008 46.09375 15.5 C 46.051228 15.413038 42.557593 7.514821 42.46875 7.375 C 42.057835 6.750558 41.152294 6.474369 40.46875 6.5 z "
+       xlink:href="#path1841"
+       style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3247);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.38659794"
+       id="path3237"
+       inkscape:href="#path1841"
+       d="M 40.375,7.53125 C 40.307786,7.5315126 40.187424,7.5621485 40.0625,7.5625 C 39.812652,7.5632031 39.458456,7.5614722 39,7.5625 C 38.083088,7.5645555 36.778275,7.5594608 35.21875,7.5625 C 32.0997,7.5685785 27.959843,7.5862798 23.8125,7.59375 C 15.517814,7.6086903 7.1755291,7.5937062 7.15625,7.59375 C 6.6366936,7.594937 6.2615608,7.6524246 6.0625,7.71875 C 5.8634392,7.7850754 5.7953622,7.77194 5.65625,8.0625 C 5.7244234,7.9201072 5.6779783,8.0363852 5.65625,8.09375 C 5.6345217,8.1511148 5.6013283,8.2387513 5.5625,8.34375 C 5.4848433,8.5537474 5.3772673,8.8700038 5.25,9.21875 C 4.9954654,9.9162423 4.647162,10.82881 4.3125,11.75 C 3.977838,12.67119 3.6668002,13.599915 3.40625,14.3125 C 3.2759749,14.668793 3.1460284,14.962545 3.0625,15.1875 C 2.9789716,15.412455 2.9631601,15.461769 2.875,15.65625 C 2.4633478,16.564343 2.4810984,17.654814 2.75,18.40625 C 3.0189016,19.157686 3.3876221,19.473746 3.90625,19.46875 C 4.0431167,19.467474 4.6187591,19.468534 5.75,19.46875 C 6.8812409,19.468966 8.469657,19.468121 10.375,19.46875 C 14.185686,19.470007 19.254551,19.467381 24.3125,19.46875 C 29.370449,19.470119 34.44211,19.469323 38.28125,19.46875 C 40.20082,19.468464 41.785363,19.469906 42.9375,19.46875 C 44.089637,19.467594 44.934706,19.466069 44.84375,19.46875 C 44.939478,19.465978 44.944876,19.474737 45.0625,19.3125 C 45.180124,19.150263 45.303425,18.791919 45.375,18.375 C 45.51815,17.541162 45.378994,16.424293 45.15625,15.96875 C 45.08818,15.829539 45.122096,15.876058 45.09375,15.8125 C 45.065404,15.748942 45.018732,15.674998 44.96875,15.5625 C 44.868786,15.337505 44.729962,15.002468 44.5625,14.625 C 44.227576,13.870065 43.788496,12.876072 43.34375,11.875 C 42.899004,10.873928 42.46493,9.8847897 42.125,9.125 C 41.955035,8.7451052 41.790172,8.4138381 41.6875,8.1875 C 41.636164,8.074331 41.590406,7.9975179 41.5625,7.9375 C 41.439574,7.7832595 40.858748,7.5177979 40.5,7.53125 C 40.400017,7.5350926 40.456732,7.5311365 40.4375,7.53125 C 40.418268,7.5313635 40.408607,7.5311187 40.375,7.53125 z " />
+    <path
+       style="opacity:0.82989693;color:black;fill:url(#linearGradient2970);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 8,10 L 7.375,12 L 39.375001,12 L 38.593148,10.07544 L 8,10 z "
+       id="path2962"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="color:black;fill:url(#linearGradient3097);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:1.00000083;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 9.8535488,1.5000014 L 37.167316,1.5000014 C 37.363184,1.5000014 37.520869,1.6576863 37.520869,1.853555 L 37.520869,11.500003 C 37.520869,11.500003 9.4999952,11.500003 9.4999952,11.500003 L 9.4999952,1.853555 C 9.4999952,1.6576863 9.6576801,1.5000014 9.8535488,1.5000014 z "
+       id="rect3006"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="opacity:0.62886598;color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:1.00000024;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 10.499998,10.522594 L 10.499998,2.5000011 L 36.504381,2.5000011 L 36.504381,10.611733"
+       id="path3103" />
+    <path
+       transform="matrix(0.814384,0,0,0.796379,7.58372,3.212694)"
+       d="M 43 15 A 2.5 1.25 0 1 1  38,15 A 2.5 1.25 0 1 1  43 15 z"
+       sodipodi:ry="1.25"
+       sodipodi:rx="2.5"
+       sodipodi:cy="15"
+       sodipodi:cx="40.5"
+       id="path3139"
+       style="opacity:1;color:black;fill:#c00;fill-opacity:1;fill-rule:evenodd;stroke:#a40000;stroke-width:1.24172473;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:1;color:black;fill:#ef2929;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3147);stroke-width:1.24172473;stroke-linecap:square;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path3137"
+       sodipodi:cx="40.5"
+       sodipodi:cy="15"
+       sodipodi:rx="2.5"
+       sodipodi:ry="1.25"
+       d="M 43 15 A 2.5 1.25 0 1 1  38,15 A 2.5 1.25 0 1 1  43 15 z"
+       transform="matrix(0.814384,0,0,0.796379,7.58372,2.549784)" />
+    <rect
+       style="opacity:0.27319588;color:black;fill:url(#linearGradient3165);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect3157"
+       width="29"
+       height="5.3125"
+       x="9"
+       y="6.6875" />
+    <rect
+       style="opacity:0.13917526;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect3167"
+       width="23"
+       height="1"
+       x="12"
+       y="4"
+       rx="0.5"
+       ry="0.5" />
+    <rect
+       y="6"
+       x="12"
+       height="1"
+       width="15"
+       id="rect3169"
+       style="opacity:0.13917526;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       rx="0.5"
+       ry="0.5" />
+    <rect
+       style="opacity:0.13917526;color:black;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="rect3171"
+       width="19"
+       height="1"
+       x="12"
+       y="8"
+       rx="0.5"
+       ry="0.5" />
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/folder-closed.png b/src/maemo/pixmaps/folder-closed.png
new file mode 100644 (file)
index 0000000..49b6216
Binary files /dev/null and b/src/maemo/pixmaps/folder-closed.png differ
diff --git a/src/maemo/pixmaps/folder-open.png b/src/maemo/pixmaps/folder-open.png
new file mode 100644 (file)
index 0000000..ba8aa09
Binary files /dev/null and b/src/maemo/pixmaps/folder-open.png differ
diff --git a/src/maemo/pixmaps/forward.svg b/src/maemo/pixmaps/forward.svg
new file mode 100644 (file)
index 0000000..989bff5
--- /dev/null
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-next.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.43+devel"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48"
+   width="48"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient2591">
+      <stop
+         style="stop-color:#73d216"
+         offset="0"
+         id="stop2593" />
+      <stop
+         style="stop-color:#4e9a06"
+         offset="1.0000000"
+         id="stop2595" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.51799,3.452086)"
+       r="17.171415"
+       fy="2.8969381"
+       fx="19.701141"
+       cy="2.8969381"
+       cx="19.701141"
+       id="radialGradient8656"
+       xlink:href="#linearGradient8650"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,2.511012e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2591"
+       id="radialGradient2597"
+       cx="22.291636"
+       cy="32.797512"
+       fx="22.291636"
+       fy="32.797512"
+       r="16.9562"
+       gradientTransform="matrix(0.843022,1.871885e-16,-2.265228e-16,1.020168,4.499298,1.381992)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="25"
+     inkscape:window-x="0"
+     inkscape:window-height="885"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="27.398876"
+     inkscape:cx="34.827552"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:title>Go Next</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>next</rdf:li>
+            <rdf:li>right</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&gt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.271186,0.000000,0.000000,1.271186,-8.119376,-15.10179)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 8.5541875,15.517348 L 8.5541875,32.511768 L 21.538,32.511768 L 21.538,41.056806 L 41.497835,24.150365 L 21.41919,7.1251168 L 21.41919,15.522652 L 8.5541875,15.517348 z "
+       style="opacity:1;color:#000000;fill:url(#radialGradient2597);fill-opacity:1;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path8645"
+       d="M 21.962385,8.2485033 L 21.962385,16.054978 L 9.1452151,16.054978 L 9.1452151,25.095691 C 26.895215,27.095691 25.778752,17.640403 40.528752,24.140403 L 21.962385,8.2485033 z "
+       style="opacity:0.5080214;color:#000000;fill:url(#radialGradient8656);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128339;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 9.537702,16.561892 L 9.537702,31.546332 L 22.523069,31.546332 L 22.523069,38.941498 L 40.001083,24.145807 L 22.507108,9.3654066 L 22.507108,16.566789 L 9.537702,16.561892 z "
+       id="path8658"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/gnome-stock-mail-fwd.svg b/src/maemo/pixmaps/gnome-stock-mail-fwd.svg
new file mode 100644 (file)
index 0000000..364491e
--- /dev/null
@@ -0,0 +1,947 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="mail-forward.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.43+devel"
+   sodipodi:version="0.32"
+   id="svg5816"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/garrett/Tango/scalable/actions/mail-forward-16.png"
+   inkscape:export-xdpi="30"
+   inkscape:export-ydpi="30">
+  <defs
+     id="defs3">
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient2484">
+      <stop
+         style="stop-color:#9f620b;stop-opacity:1;"
+         offset="0"
+         id="stop2486" />
+      <stop
+         style="stop-color:#ffc879;stop-opacity:0;"
+         offset="1"
+         id="stop2488" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2624">
+      <stop
+         id="stop2626"
+         offset="0"
+         style="stop-color:#dfe0df;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a6b0a6;stop-opacity:1;"
+         offset="0.23809524"
+         id="stop2630" />
+      <stop
+         id="stop2628"
+         offset="1.0000000"
+         style="stop-color:#b5beb5;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2587">
+      <stop
+         style="stop-color:#989897;stop-opacity:1;"
+         offset="0"
+         id="stop2589" />
+      <stop
+         style="stop-color:#626262;stop-opacity:1"
+         offset="1.0000000"
+         id="stop2591" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2573">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2575" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2577" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2274">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.12871288;"
+         offset="0.0000000"
+         id="stop2276" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop2278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9749">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop9751" />
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9753" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2136">
+      <stop
+         style="stop-color:#989690;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2138" />
+      <stop
+         style="stop-color:#656460;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2140" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15107">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15109" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15111" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10691"
+       inkscape:collect="always">
+      <stop
+         id="stop10693"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop10695"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="7.2284161"
+       fy="73.615714"
+       fx="6.7027131"
+       cy="73.615714"
+       cx="6.7027131"
+       gradientTransform="scale(1.902215,0.525703)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient11382"
+       xlink:href="#linearGradient10691"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient4274">
+      <stop
+         id="stop4276"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.25490198;" />
+      <stop
+         id="stop4278"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2187">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2189" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2191" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6901"
+       inkscape:collect="always">
+      <stop
+         id="stop6903"
+         offset="0"
+         style="stop-color:#3465a4;stop-opacity:1;" />
+      <stop
+         id="stop6905"
+         offset="1"
+         style="stop-color:#3465a4;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6925"
+       inkscape:collect="always">
+      <stop
+         id="stop6927"
+         offset="0"
+         style="stop-color:#204a87;stop-opacity:1;" />
+      <stop
+         id="stop6929"
+         offset="1"
+         style="stop-color:#204a87;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient2581"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+       x1="11.572842"
+       y1="4.7461626"
+       x2="18.475286"
+       y2="26.022910" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2136"
+       id="linearGradient2583"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+       x1="2.0618774"
+       y1="15.257116"
+       x2="30.599684"
+       y2="15.257116" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2624"
+       id="linearGradient2585"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.454781,0,0,0.762004,2.88175,0.337386)"
+       x1="9.1643066"
+       y1="38.070892"
+       x2="9.8855038"
+       y2="52.090679" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9749"
+       id="linearGradient2588"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.370928,0,0,1.477865,2.431133,-1.107292)"
+       x1="11.233107"
+       y1="13.686079"
+       x2="21.111549"
+       y2="24.132717" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2274"
+       id="radialGradient2590"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.629929,0.459373,-0.147675,0.248512,16.51724,9.053737)"
+       cx="27.741131"
+       cy="38.711506"
+       fx="27.741131"
+       fy="38.711506"
+       r="17.977943" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient2592"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.276531,0,0,-1.470393,4.341724,33.41877)"
+       x1="11.74217"
+       y1="11.48487"
+       x2="13.846983"
+       y2="11.981981" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2587"
+       id="linearGradient2594"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.276531,0,0,-1.470393,4.341724,33.41877)"
+       x1="20.855347"
+       y1="4.5109215"
+       x2="31.136641"
+       y2="11.984272" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient2596"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.296015,0,0,-1.455069,3.746576,33.23191)"
+       x1="11.74217"
+       y1="11.48487"
+       x2="13.846983"
+       y2="11.981981" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2587"
+       id="linearGradient2598"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.296015,0,0,-1.455069,3.746576,33.23191)"
+       x1="20.855347"
+       y1="4.5109215"
+       x2="31.136641"
+       y2="11.984272" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient2600"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.570607,0,0,-1.231511,2.973436,33.33485)"
+       x1="10.027"
+       y1="20.219761"
+       x2="17.178024"
+       y2="-7.5274644" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9749"
+       id="linearGradient2602"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.370928,0,0,-1.46456,2.525057,33.71269)"
+       x1="11.841544"
+       y1="4.2507305"
+       x2="40.024059"
+       y2="7.4121075" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2573"
+       id="linearGradient2604"
+       gradientUnits="userSpaceOnUse"
+       x1="17.397203"
+       y1="33.357376"
+       x2="22.17771"
+       y2="31.026741" />
+    <linearGradient
+       id="linearGradient2308">
+      <stop
+         id="stop2310"
+         offset="0"
+         style="stop-color:#fd9d14;stop-opacity:1;" />
+      <stop
+         id="stop2312"
+         offset="1"
+         style="stop-color:#ffc879;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient8650">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop8652" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop8654" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient2922"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.914114,1.412791e-16,-1.412791e-16,0.914114,-3.868698,-2.706902)"
+       x1="23.707594"
+       y1="11.027571"
+       x2="36.172123"
+       y2="50.995052" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2308"
+       id="linearGradient2500"
+       gradientUnits="userSpaceOnUse"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2484"
+       id="linearGradient2502"
+       gradientUnits="userSpaceOnUse"
+       x1="26.5"
+       y1="34.25"
+       x2="26.25"
+       y2="43.571831" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8650"
+       id="linearGradient2518"
+       gradientUnits="userSpaceOnUse"
+       x1="1.2596543"
+       y1="-8.9306421"
+       x2="53.613785"
+       y2="62.587452" />
+    <linearGradient
+       y2="31.026741"
+       x2="22.17771"
+       y1="33.357376"
+       x1="17.397203"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1505"
+       xlink:href="#linearGradient2573"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="7.4121075"
+       x2="40.024059"
+       y1="4.2507305"
+       x1="11.841544"
+       gradientTransform="matrix(1.370928,0,0,-1.46456,2.525057,33.71269)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1503"
+       xlink:href="#linearGradient9749"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="-7.5274644"
+       x2="17.178024"
+       y1="20.219761"
+       x1="10.027"
+       gradientTransform="matrix(1.570607,0,0,-1.231511,2.973436,33.33485)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1501"
+       xlink:href="#linearGradient15107"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="11.981981"
+       x2="13.846983"
+       y1="11.48487"
+       x1="11.74217"
+       gradientTransform="matrix(1.296015,0,0,-1.43692,3.746576,33.20516)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1497"
+       xlink:href="#linearGradient15107"
+       inkscape:collect="always" />
+    <radialGradient
+       r="17.977943"
+       fy="38.711506"
+       fx="27.741131"
+       cy="38.711506"
+       cx="27.741131"
+       gradientTransform="matrix(0.629929,0.459373,-0.147675,0.248512,16.51724,9.053737)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient1491"
+       xlink:href="#linearGradient2274"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="52.090679"
+       x2="9.8855038"
+       y1="38.070892"
+       x1="9.1643066"
+       gradientTransform="matrix(2.454781,0,0,0.762004,2.88175,0.337386)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1487"
+       xlink:href="#linearGradient2624"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="26.022910"
+       x2="18.475286"
+       y1="4.7461626"
+       x1="11.572842"
+       gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1483"
+       xlink:href="#linearGradient15107"
+       inkscape:collect="always" />
+    <radialGradient
+       r="7.2284161"
+       fy="73.615714"
+       fx="6.7027131"
+       cy="73.615714"
+       cx="6.7027131"
+       gradientTransform="scale(1.902215,0.525703)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient1481"
+       xlink:href="#linearGradient10691"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="18.068739"
+       x2="27.90929"
+       y1="8.6689339"
+       x1="32.058014"
+       gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2365"
+       xlink:href="#linearGradient4274"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="12.583769"
+       x2="12.624337"
+       y1="27.394117"
+       x1="33.059906"
+       gradientTransform="matrix(-1.412791e-16,0.914114,-0.914114,-1.412791e-16,39.78243,-9.748047)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2566"
+       xlink:href="#linearGradient2187"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="27.057337"
+       x2="9.5821323"
+       y1="18.25"
+       x1="12.25"
+       gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2564"
+       xlink:href="#linearGradient6925"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="30.55784"
+       x2="12.252101"
+       y1="15.868432"
+       x1="14.751649"
+       gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2562"
+       xlink:href="#linearGradient6901"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2308"
+       id="linearGradient4247"
+       gradientUnits="userSpaceOnUse"
+       x1="32.707863"
+       y1="28.042139"
+       x2="43.986744"
+       y2="34.407845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2484"
+       id="linearGradient4249"
+       gradientUnits="userSpaceOnUse"
+       x1="32.707863"
+       y1="28.042139"
+       x2="43.986744"
+       y2="34.407845" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient4251"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.914114,1.412791e-16,-1.412791e-16,0.914114,-3.868698,-2.706902)"
+       x1="23.707594"
+       y1="11.027571"
+       x2="36.172123"
+       y2="50.995052" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient8650"
+       id="linearGradient4253"
+       gradientUnits="userSpaceOnUse"
+       x1="11.6875"
+       y1="14.319358"
+       x2="37.113785"
+       y2="36.087452" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10691"
+       id="radialGradient4280"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.902215,0.525703)"
+       cx="6.7027131"
+       cy="73.615714"
+       fx="6.7027131"
+       fy="73.615714"
+       r="7.2284161" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient4282"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+       x1="11.572842"
+       y1="4.7461626"
+       x2="18.475286"
+       y2="26.022910" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2624"
+       id="linearGradient4284"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.454781,0,0,0.762004,2.88175,0.337386)"
+       x1="9.1643066"
+       y1="38.070892"
+       x2="9.8855038"
+       y2="52.090679" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2274"
+       id="radialGradient4286"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.629929,0.459373,-0.147675,0.248512,16.51724,9.053737)"
+       cx="27.741131"
+       cy="38.711506"
+       fx="27.741131"
+       fy="38.711506"
+       r="17.977943" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient4288"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.296015,0,0,-1.43692,3.746576,33.20516)"
+       x1="11.74217"
+       y1="11.48487"
+       x2="13.846983"
+       y2="11.981981" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient4290"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.570607,0,0,-1.231511,2.973436,33.33485)"
+       x1="10.027"
+       y1="20.219761"
+       x2="17.178024"
+       y2="-7.5274644" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9749"
+       id="linearGradient4292"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.370928,0,0,-1.46456,2.525057,33.71269)"
+       x1="11.841544"
+       y1="4.2507305"
+       x2="40.024059"
+       y2="7.4121075" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2573"
+       id="linearGradient4294"
+       gradientUnits="userSpaceOnUse"
+       x1="17.397203"
+       y1="33.357376"
+       x2="22.17771"
+       y2="31.026741" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient3734"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+       x1="11.572842"
+       y1="4.7461626"
+       x2="18.475286"
+       y2="26.022910" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2624"
+       id="linearGradient3736"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.454781,0,0,0.762004,2.88175,0.337386)"
+       x1="9.1643066"
+       y1="38.070892"
+       x2="9.8855038"
+       y2="52.090679" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2274"
+       id="radialGradient3738"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.629929,0.459373,-0.147675,0.248512,16.51724,9.053737)"
+       cx="27.741131"
+       cy="38.711506"
+       fx="27.741131"
+       fy="38.711506"
+       r="17.977943" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient3740"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.296015,0,0,-1.43692,3.746576,33.20516)"
+       x1="11.74217"
+       y1="11.48487"
+       x2="13.846983"
+       y2="11.981981" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient3742"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.570607,0,0,-1.231511,2.973436,33.33485)"
+       x1="10.027"
+       y1="20.219761"
+       x2="17.178024"
+       y2="-7.5274644" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9749"
+       id="linearGradient3744"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.370928,0,0,-1.46456,2.525057,33.71269)"
+       x1="11.841544"
+       y1="4.2507305"
+       x2="40.024059"
+       y2="7.4121075" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2573"
+       id="linearGradient3746"
+       gradientUnits="userSpaceOnUse"
+       x1="17.397203"
+       y1="33.357376"
+       x2="22.17771"
+       y2="31.026741" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10691"
+       id="radialGradient16665"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.902215,0.525703)"
+       cx="6.7027131"
+       cy="73.615714"
+       fx="6.7027131"
+       fy="73.615714"
+       r="7.2284161" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="93"
+     inkscape:window-x="600"
+     inkscape:window-height="1014"
+     inkscape:window-width="1314"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="false"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="-41.588018"
+     inkscape:cx="27.333331"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.16862745"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:grid-points="true"
+     gridempspacing="2"
+     gridtolerance="2"
+     inkscape:object-bbox="false"
+     inkscape:object-points="false"
+     objecttolerance="2"
+     guidetolerance="2"
+     inkscape:object-paths="false"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Mail</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>mail</rdf:li>
+            <rdf:li>e-mail</rdf:li>
+            <rdf:li>MUA</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <g
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       transform="matrix(1.01362,0,0,-1.01362,11.12939,-8.619854)"
+       id="g3186" />
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.312904e-2,0,0,1.485743e-2,45.57179,30.47827)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.3;color:black;fill:url(#radialGradient16665);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path4202"
+       sodipodi:cx="12.75"
+       sodipodi:cy="38.700001"
+       sodipodi:rx="13.75"
+       sodipodi:ry="3.8"
+       d="M 26.5 38.700001 A 13.75 3.8 0 1 1  -1,38.700001 A 13.75 3.8 0 1 1  26.5 38.700001 z"
+       transform="matrix(1.178791,0,0,1.526064,14.56207,-21.53505)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       id="g4204"
+       transform="matrix(1.004727,0,0,1.001609,4.209e-2,-8.972783)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         id="path4206"
+         d="M 6.34375,15.454879 L 6.34375,41.44216 L 43.3125,41.44216 L 43.25,15.554447 C 43.249987,15.548732 43.250374,15.527358 43.25,15.521258 C 43.249269,15.514776 43.251086,15.494928 43.25,15.488068 C 43.248562,15.480833 43.220538,15.462487 43.21875,15.454879 L 6.34375,15.454879 z "
+         style="fill:url(#linearGradient3734);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99684346;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path4208"
+         d="M 20.490674,29.058712 L 7.09471,40.0307 L 21.003552,30.426394 L 30.02171,30.426394 L 42.440757,39.908587 L 30.577332,29.058712 L 20.490674,29.058712 z "
+         style="fill:url(#linearGradient3736);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path4210"
+         d="M 7.4471445,16.725622 C 7.440469,16.738968 7.4525223,16.745279 7.4471445,16.757236 C 7.4447837,16.762865 7.4180173,16.783579 7.415987,16.788852 C 7.4142896,16.793766 7.417349,16.815911 7.415987,16.820466 C 7.4149629,16.824659 7.4166708,16.848255 7.415987,16.852082 L 7.4471445,40.341905 L 42.28123,40.341905 L 42.218915,16.97854 C 42.21823,16.974827 42.219935,16.951011 42.218915,16.946925 C 42.2043,16.898814 42.177209,16.814677 42.125442,16.725622 L 7.4471445,16.725622 z "
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99684328;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path4212"
+         d="M 23.329298,32.996721 C 20.937189,32.550375 7.9003872,18.771125 6.5966059,16.372022 C 6.5816495,16.343448 6.5559705,16.288608 6.5446896,16.2636 L 41.057803,16.2636 C 40.780724,18.766404 33.533576,32.769346 31.496524,32.996721 C 31.488351,32.997189 31.475247,32.996721 31.467251,32.996721 L 23.446392,32.996721 C 23.412766,32.996721 23.368838,33.004099 23.329298,32.996721 z "
+         style="fill:url(#radialGradient3738);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.85660434;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path4214"
+         d="M 20.77475,31.085394 C 18.407309,30.694257 7.945269,18.619435 7.1185841,16.517089 C 7.109327,16.49205 7.094677,16.443993 7.088438,16.422079 L 42.630645,16.422079 C 41.807029,18.615299 31.332195,30.886144 29.185502,31.085394 C 29.176984,31.085803 29.16359,31.085394 29.155355,31.085394 L 20.895334,31.085394 C 20.860706,31.085394 20.813881,31.091858 20.77475,31.085394 z "
+         style="fill:url(#linearGradient3740);fill-opacity:1;fill-rule:evenodd;stroke:#989898;stroke-width:0.85390013;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path4216"
+         d="M 20.625174,30.490479 C 18.519211,29.999928 7.7224803,17.987711 7.0314243,16.466377 C 7.0288882,16.460379 7.0336023,16.439689 7.0314243,16.434063 C 7.0259731,16.418307 7.002328,16.381764 7.0001743,16.369436 C 7.000203,16.366104 6.9997682,16.34006 7.0001743,16.337122 C 7.0013435,16.334982 7.0298695,16.338859 7.0314243,16.337122 L 7.1251743,16.240181 L 42.593924,16.240181 C 42.591209,16.264507 42.57124,16.307054 42.562674,16.337122 C 42.555173,16.360727 42.542103,16.407355 42.531424,16.434063 C 41.609326,18.615 31.023436,30.200512 29.187674,30.490479 C 29.172746,30.492123 29.138826,30.490479 29.125174,30.490479 L 20.750174,30.490479 C 20.719887,30.488811 20.66042,30.498689 20.625174,30.490479 z "
+         style="fill:url(#linearGradient3742);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path4218"
+         d="M 20.875174,30.051141 C 18.427215,29.501671 8.7040003,18.433898 7.5314243,16.451725 L 42.125174,16.451725 C 40.634986,18.784896 31.078502,29.863516 28.968924,30.051141 C 28.960181,30.051543 28.946142,30.051141 28.937674,30.051141 L 21.031424,30.051141 C 21.00503,30.051141 20.966542,30.054692 20.937674,30.051141 C 20.917888,30.047995 20.896025,30.055821 20.875174,30.051141 z "
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient3744);stroke-width:0.85389996;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path4220"
+         d="M 20.959511,30.447113 L 9.018012,38.717969 L 11.237445,38.724076 L 21.23557,31.855136 L 30.057478,30.432298 L 20.959511,30.447113 z "
+         style="fill:url(#linearGradient3746);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <g
+       id="g4242"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         transform="matrix(-0.845702,0,0,-0.845702,51.40323,49.14048)"
+         sodipodi:nodetypes="ccccccc"
+         id="path2801"
+         d="M 49.785728,36.461609 C 31.871505,29.801214 51.855165,14.067224 22.462411,12.49765 L 22.462411,3.1222396 L 5.8139298,17.708819 L 22.462411,33.006349 C 22.462411,33.006349 22.462411,23.337969 22.462411,23.337969 C 39.481645,22.456387 30.293505,37.380239 49.785728,36.461609 z "
+         style="color:#000000;fill:url(#linearGradient4247);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4249);stroke-width:1.18245041;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         transform="matrix(-0.845702,0,0,-0.845702,51.40323,49.14048)"
+         style="opacity:0.7;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4251);stroke-width:1.18244982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         d="M 44.926064,35.103042 C 33.887008,28.727803 48.67967,14.639454 21.448701,13.549959 L 21.448701,5.4508678 C 21.448701,5.4508678 7.4009628,17.714589 7.4009628,17.714589 L 21.448701,30.658617 C 21.448701,30.658617 21.448701,22.380979 21.448701,22.380979 C 37.544904,20.111228 34.130549,34.399548 44.926064,35.103042 z "
+         id="path2803"
+         sodipodi:nodetypes="ccccccc"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path2490"
+         d="M 32.84375,38.1875 L 32.78125,45.5 L 45.875,34.15625 L 32.84375,22.09375 C 32.843751,22.093751 32.78125,29.65625 32.78125,29.65625 C 20.263051,32.276806 23.547112,18.410613 11.6875,18.9375 C 22.872464,24.02322 9.730253,37.29154 32.84375,38.1875 z M 40.78125,29.625 C 40.860491,29.620211 40.917074,29.627336 41,29.625 L 45.8125,34.1875 L 32.875,45.46875 L 32.78125,38.15625 L 28.59375,37.625 C 37.938693,35.049622 35.789049,29.926677 40.78125,29.625 z "
+         style="color:#000000;fill:url(#linearGradient4253);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.18245041;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true"
+         sodipodi:nodetypes="cccccccccccccc" />
+    </g>
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/gnome-stock-mail-new.svg b/src/maemo/pixmaps/gnome-stock-mail-new.svg
new file mode 100644 (file)
index 0000000..6e0c451
--- /dev/null
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="mail-message-new.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.43+devel"
+   sodipodi:version="0.32"
+   id="svg5816"
+   height="48px"
+   width="48px">
+  <defs
+     id="defs3">
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient2274">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.12871288;"
+         offset="0.0000000"
+         id="stop2276" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop2278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9749">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop9751" />
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9753" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2152">
+      <stop
+         style="stop-color:#9aa29a;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2154" />
+      <stop
+         style="stop-color:#b5beb5;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2156" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2166">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2168" />
+      <stop
+         style="stop-color:#dcdcdc;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2170" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient18913">
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop18915" />
+      <stop
+         style="stop-color:#c8c8c8;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop18917" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2136">
+      <stop
+         style="stop-color:#989690;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2138" />
+      <stop
+         style="stop-color:#656460;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2140" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15107">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15109" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15111" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10691"
+       inkscape:collect="always">
+      <stop
+         id="stop10693"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop10695"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="7.2284161"
+       fy="73.615714"
+       fx="6.7027131"
+       cy="73.615714"
+       cx="6.7027131"
+       gradientTransform="scale(1.902215,0.525703)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient11382"
+       xlink:href="#linearGradient10691"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="32.203162"
+       x2="9.7619219"
+       y1="37.784682"
+       x1="8.7803760"
+       gradientTransform="matrix(2.394900,0.000000,0.000000,0.781058,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27463"
+       xlink:href="#linearGradient2274"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="24.132717"
+       x2="21.111549"
+       y1="13.686079"
+       x1="11.233107"
+       gradientTransform="matrix(1.370928,0.000000,0.000000,1.443758,2.431133,-0.140786)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27468"
+       xlink:href="#linearGradient9749"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="52.090678"
+       x2="9.8855033"
+       y1="37.197018"
+       x1="8.9156475"
+       gradientTransform="matrix(2.454781,0.000000,0.000000,0.762004,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27471"
+       xlink:href="#linearGradient2152"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="52.090678"
+       x2="9.8855033"
+       y1="37.197018"
+       x1="8.9156475"
+       gradientTransform="matrix(2.454781,0.000000,0.000000,0.762004,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27474"
+       xlink:href="#linearGradient2152"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="29.568739"
+       x2="15.310744"
+       y1="15.148383"
+       x1="10.184240"
+       gradientTransform="matrix(1.819266,0.000000,0.000000,1.028193,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27477"
+       xlink:href="#linearGradient2166"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="17.876846"
+       x2="13.467486"
+       y1="7.2310905"
+       x1="5.8266134"
+       gradientTransform="matrix(1.570607,0.000000,0.000000,1.190976,2.879512,0.343005)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27483"
+       xlink:href="#linearGradient18913"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="26.022910"
+       x2="18.475286"
+       y1="4.7461626"
+       x1="11.572842"
+       gradientTransform="matrix(1.343475,0.000000,0.000000,1.417854,2.879511,0.314599)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27486"
+       xlink:href="#linearGradient15107"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="15.257116"
+       x2="30.599684"
+       y1="15.257116"
+       x1="2.0618774"
+       gradientTransform="matrix(1.343475,0.000000,0.000000,1.417854,2.879511,0.314599)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient27488"
+       xlink:href="#linearGradient2136"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient12512">
+      <stop
+         id="stop12513"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop12517"
+         offset="0.50000000"
+         style="stop-color:#fff520;stop-opacity:0.89108908;" />
+      <stop
+         id="stop12514"
+         offset="1.0000000"
+         style="stop-color:#fff300;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12512"
+       id="radialGradient1558"
+       gradientUnits="userSpaceOnUse"
+       cx="55.000000"
+       cy="125.00000"
+       fx="55.000000"
+       fy="125.00000"
+       r="14.375000" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="0"
+     inkscape:window-x="89"
+     inkscape:window-height="743"
+     inkscape:window-width="872"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="18.816166"
+     inkscape:cx="28.384904"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Mail New</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson, Steven Garrity</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>mail</rdf:li>
+            <rdf:li>e-mail</rdf:li>
+            <rdf:li>MUA</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.312904e-2,0,0,1.485743e-2,45.32054,39.61432)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       style="fill:url(#linearGradient27486);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient27488);stroke-width:0.85660440;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 6.3334395,16.972251 L 6.3334395,41.481799 L 43.305555,41.481799 L 43.244499,17.089859 C 43.241050,15.712272 31.395999,2.4121110 29.210877,2.4121110 L 20.659391,2.4121110 C 18.362072,2.4121110 6.3334395,15.673953 6.3334395,16.972251 z "
+       id="path12723"
+       sodipodi:nodetypes="ccczzzz" />
+    <path
+       style="fill:url(#linearGradient27483);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 6.9230610,16.787103 C 6.5250222,16.356975 18.809966,3.0935378 20.667210,3.0935378 L 29.042965,3.0935378 C 30.790449,3.0935378 43.079567,16.221603 42.470079,16.978956 L 31.608858,30.475150 L 19.295373,30.156846 L 6.9230610,16.787103 z "
+       id="path18153"
+       sodipodi:nodetypes="czzzccz" />
+    <path
+       style="fill:#000000;fill-opacity:0.14619882;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 19.077530,30.017590 L 11.744526,21.271586 L 36.562951,14.335513 L 39.592221,20.551966 L 32.175956,29.992298"
+       id="path2164"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#000000;fill-opacity:0.14619882;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 18.291767,29.836259 L 10.809167,21.026146 L 35.456637,14.132812 L 38.630714,20.403811 L 31.390193,29.810968"
+       id="path2162"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#000000;fill-opacity:0.14619882;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 18.775313,29.957146 L 11.100386,21.296624 L 36.068405,14.232329 L 39.354114,20.824726 L 31.873739,29.931855"
+       id="path2160"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#linearGradient27477);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 18.593984,30.440693 L 11.260975,21.694689 L 35.972554,14.801355 L 39.083369,21.188770 L 31.963198,30.174701"
+       id="path15105"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:url(#linearGradient27474);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 20.488434,29.064331 L 7.0924698,40.036319 L 21.001312,30.432013 L 30.019470,30.432013 L 42.438517,39.914206 L 30.575092,29.064331 L 20.488434,29.064331 z "
+       id="path14245"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="color:#000000;fill:url(#linearGradient27471);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 6.9634751,16.885144 L 18.479648,31.201334 L 19.548151,30.346532 L 6.9634751,16.885144 z "
+       id="path14339"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient27468);stroke-width:0.85660428;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 7.3077115,17.131415 L 7.3388644,40.342421 L 42.283659,40.342421 L 42.221353,17.257512 C 42.219329,16.508413 31.005032,3.4591863 28.837233,3.4591863 L 20.941579,3.4591863 C 18.689313,3.4591863 7.3066655,16.351067 7.3077115,17.131415 z "
+       id="path15103"
+       sodipodi:nodetypes="ccczzzz" />
+    <path
+       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+       d="M 20.957271,30.452732 L 9.0157722,38.723588 L 11.235205,38.729695 L 21.233330,31.860755 L 30.055238,30.437917 L 20.957271,30.452732 z "
+       id="path17393"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 11.427536,21.670296 L 12.752479,23.080719 L 35.543311,16.196529 L 38.458445,21.878896 L 39.072496,21.166981 L 36.003081,14.789145 L 11.427536,21.670296 z "
+       id="path2174"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       style="fill:url(#linearGradient27463);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 13.308098,23.636340 L 19.334450,30.090093 L 20.531174,29.064331 L 30.617831,29.107071 L 31.429893,29.833651 L 35.404721,25.089502 C 34.250740,23.679081 13.308098,23.636340 13.308098,23.636340 z "
+       id="path2272"
+       sodipodi:nodetypes="ccccccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       id="path27492"
+       d="M 41.812936,17.847945 L 31.861315,30.479232 L 30.792812,29.624431 L 41.812936,17.847945 z "
+       style="color:#000000;fill:#b1b1b1;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <g
+       id="layer4"
+       inkscape:label="new"
+       style="display:inline"
+       transform="translate(5.000000e-7,2.500000e-6)">
+      <path
+         sodipodi:type="arc"
+         style="color:#000000;fill:url(#radialGradient1558);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.2500002;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:block"
+         id="path12511"
+         sodipodi:cx="55.000000"
+         sodipodi:cy="125.00000"
+         sodipodi:rx="14.375000"
+         sodipodi:ry="14.375000"
+         d="M 69.375000 125.00000 A 14.375000 14.375000 0 1 1  40.625000,125.00000 A 14.375000 14.375000 0 1 1  69.375000 125.00000 z"
+         transform="matrix(0.783292,0.000000,0.000000,0.783292,-6.340883,-86.65168)"
+         inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png"
+         inkscape:export-xdpi="33.852203"
+         inkscape:export-ydpi="33.852203" />
+    </g>
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/gnome-stock-mail-rpl.svg b/src/maemo/pixmaps/gnome-stock-mail-rpl.svg
new file mode 100644 (file)
index 0000000..24c266c
--- /dev/null
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="mail-reply-sender.svg"
+   sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+   inkscape:version="0.43+devel"
+   sodipodi:version="0.32"
+   id="svg5816"
+   height="48px"
+   width="48px">
+  <defs
+     id="defs3">
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5031"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient5060">
+      <stop
+         style="stop-color:black;stop-opacity:1;"
+         offset="0"
+         id="stop5062" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5064" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5060"
+       id="radialGradient5029"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+       cx="605.71429"
+       cy="486.64789"
+       fx="605.71429"
+       fy="486.64789"
+       r="117.14286" />
+    <linearGradient
+       id="linearGradient5048">
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="0"
+         id="stop5050" />
+      <stop
+         id="stop5056"
+         offset="0.5"
+         style="stop-color:black;stop-opacity:1;" />
+      <stop
+         style="stop-color:black;stop-opacity:0;"
+         offset="1"
+         id="stop5052" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="linearGradient5027"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+       x1="302.85715"
+       y1="366.64789"
+       x2="302.85715"
+       y2="609.50507" />
+    <linearGradient
+       id="linearGradient2624">
+      <stop
+         id="stop2626"
+         offset="0"
+         style="stop-color:#dfe0df;stop-opacity:1;" />
+      <stop
+         style="stop-color:#a6b0a6;stop-opacity:1;"
+         offset="0.23809524"
+         id="stop2630" />
+      <stop
+         id="stop2628"
+         offset="1.0000000"
+         style="stop-color:#b5beb5;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2573">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2575" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2577" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2274">
+      <stop
+         style="stop-color:#000000;stop-opacity:0.12871288;"
+         offset="0.0000000"
+         id="stop2276" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0.0000000;"
+         offset="1.0000000"
+         id="stop2278" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9749">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop9751" />
+      <stop
+         style="stop-color:#ededed;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop9753" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient15107">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop15109" />
+      <stop
+         style="stop-color:#e2e2e2;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop15111" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient10691"
+       inkscape:collect="always">
+      <stop
+         id="stop10693"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop10695"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4274">
+      <stop
+         id="stop4276"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.25490198;" />
+      <stop
+         id="stop4278"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2187">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2189" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2191" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6901"
+       inkscape:collect="always">
+      <stop
+         id="stop6903"
+         offset="0"
+         style="stop-color:#3465a4;stop-opacity:1;" />
+      <stop
+         id="stop6905"
+         offset="1"
+         style="stop-color:#3465a4;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6925"
+       inkscape:collect="always">
+      <stop
+         id="stop6927"
+         offset="0"
+         style="stop-color:#204a87;stop-opacity:1;" />
+      <stop
+         id="stop6929"
+         offset="1"
+         style="stop-color:#204a87;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6901"
+       id="linearGradient2562"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+       x1="14.751649"
+       y1="15.868432"
+       x2="12.252101"
+       y2="30.55784" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6925"
+       id="linearGradient2564"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+       x1="12.25"
+       y1="18.25"
+       x2="9.5821323"
+       y2="27.057337" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2187"
+       id="linearGradient2566"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1.412791e-16,0.914114,-0.914114,-1.412791e-16,39.78243,-9.748047)"
+       x1="33.059906"
+       y1="27.394117"
+       x2="12.624337"
+       y2="12.583769" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4274"
+       id="linearGradient2365"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0,1,-1,0,37.07553,-5.879343)"
+       x1="32.058014"
+       y1="8.6689339"
+       x2="27.90929"
+       y2="18.068739" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10691"
+       id="radialGradient1481"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.902215,0.525703)"
+       cx="6.7027131"
+       cy="73.615714"
+       fx="6.7027131"
+       fy="73.615714"
+       r="7.2284161" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient1483"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.343475,0,0,1.505846,2.879511,-2.266018)"
+       x1="11.572842"
+       y1="4.7461626"
+       x2="18.475286"
+       y2="26.022910" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2624"
+       id="linearGradient1487"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.454781,0,0,0.762004,2.88175,0.337386)"
+       x1="9.1643066"
+       y1="38.070892"
+       x2="9.8855038"
+       y2="52.090679" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2274"
+       id="radialGradient1491"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.629929,0.459373,-0.147675,0.248512,16.51724,9.053737)"
+       cx="27.741131"
+       cy="38.711506"
+       fx="27.741131"
+       fy="38.711506"
+       r="17.977943" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient1493"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.276531,0,0,-1.406115,24.24763,33.3374)"
+       x1="11.74217"
+       y1="11.48487"
+       x2="13.846983"
+       y2="11.981981" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient1497"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.296015,0,0,-1.43692,3.746576,33.20516)"
+       x1="11.74217"
+       y1="11.48487"
+       x2="13.846983"
+       y2="11.981981" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient15107"
+       id="linearGradient1501"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.570607,0,0,-1.231511,2.973436,33.33485)"
+       x1="10.027"
+       y1="20.219761"
+       x2="17.178024"
+       y2="-7.5274644" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9749"
+       id="linearGradient1503"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.370928,0,0,-1.46456,2.525057,33.71269)"
+       x1="11.841544"
+       y1="4.2507305"
+       x2="40.024059"
+       y2="7.4121075" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2573"
+       id="linearGradient1505"
+       gradientUnits="userSpaceOnUse"
+       x1="17.397203"
+       y1="33.357376"
+       x2="22.17771"
+       y2="31.026741" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="52"
+     inkscape:window-x="349"
+     inkscape:window-height="907"
+     inkscape:window-width="1205"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="-19.597636"
+     inkscape:cx="71.385357"
+     inkscape:zoom="1"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.16862745"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:grid-points="true"
+     gridempspacing="2"
+     gridtolerance="2"
+     inkscape:object-bbox="true"
+     inkscape:object-points="true"
+     objecttolerance="2"
+     guidetolerance="2"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Mail Reply</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Garrett LeSage</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner, Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>mail</rdf:li>
+            <rdf:li>e-mail</rdf:li>
+            <rdf:li>reply</rdf:li>
+            <rdf:li>sender</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <g
+       style="display:inline"
+       id="g5022"
+       transform="matrix(2.312904e-2,0,0,1.485743e-2,45.62082,30.57952)">
+      <rect
+         y="-150.69685"
+         x="-1559.2523"
+         height="478.35718"
+         width="1339.6335"
+         id="rect4173"
+         style="opacity:0.40206185;color:black;fill:url(#linearGradient5027);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path5058"
+         d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5029);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+      <path
+         style="opacity:0.40206185;color:black;fill:url(#radialGradient5031);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+         id="path5018"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.3;color:black;fill:url(#radialGradient1481);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path10699"
+       sodipodi:cx="12.75"
+       sodipodi:cy="38.700001"
+       sodipodi:rx="13.75"
+       sodipodi:ry="3.8"
+       d="M 26.5 38.700001 A 13.75 3.8 0 1 1  -1,38.700001 A 13.75 3.8 0 1 1  26.5 38.700001 z"
+       transform="matrix(0.992718,0,0,1.526064,15.03813,-23.6924)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       id="g2570"
+       transform="matrix(1.004727,0,0,1.006001,5.456518e-2,-9.119156)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         id="path12723"
+         d="M 6.34375,15.454879 L 6.34375,41.44216 L 43.3125,41.44216 L 43.25,15.554447 C 43.249987,15.548732 43.250374,15.527358 43.25,15.521258 C 43.249269,15.514776 43.251086,15.494928 43.25,15.488068 C 43.248562,15.480833 43.220538,15.462487 43.21875,15.454879 L 6.34375,15.454879 z "
+         style="fill:url(#linearGradient1483);fill-opacity:1;fill-rule:evenodd;stroke:#888a85;stroke-width:0.99466482;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="ccccccc"
+         id="path1634"
+         d="M 20.490674,29.058712 L 7.09471,40.0307 L 21.003552,30.426394 L 30.02171,30.426394 L 42.440757,39.908587 L 30.577332,29.058712 L 20.490674,29.058712 z "
+         style="fill:url(#linearGradient1487);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path15103"
+         d="M 7.34375,16.733862 C 7.3370547,16.747199 7.3491438,16.753505 7.34375,16.765454 C 7.3413822,16.771079 7.3145363,16.791778 7.3125,16.797048 C 7.3107976,16.801959 7.313866,16.824087 7.3125,16.82864 C 7.3114729,16.83283 7.3131858,16.85641 7.3125,16.860233 L 7.34375,40.333651 L 42.28125,40.333651 L 42.21875,16.986604 C 42.218063,16.982892 42.219774,16.959094 42.21875,16.955011 C 42.204092,16.906933 42.176921,16.822855 42.125,16.733862 L 7.34375,16.733862 z "
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99466479;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path2563"
+         d="M 23.329298,32.996721 C 20.937189,32.550375 7.9003872,18.771125 6.5966059,16.372022 C 6.5816495,16.343448 6.5559705,16.288608 6.5446896,16.2636 L 41.057803,16.2636 C 40.780724,18.766404 33.533576,32.769346 31.496524,32.996721 C 31.488351,32.997189 31.475247,32.996721 31.467251,32.996721 L 23.446392,32.996721 C 23.412766,32.996721 23.368838,33.004099 23.329298,32.996721 z "
+         style="fill:url(#radialGradient1491);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.85660434;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path1613"
+         d="M 20.77475,31.085394 C 18.407309,30.694257 7.945269,18.619435 7.1185841,16.517089 C 7.109327,16.49205 7.094677,16.443993 7.088438,16.422079 L 42.630645,16.422079 C 41.807029,18.615299 31.332195,30.886144 29.185502,31.085394 C 29.176984,31.085803 29.16359,31.085394 29.155355,31.085394 L 20.895334,31.085394 C 20.860706,31.085394 20.813881,31.091858 20.77475,31.085394 z "
+         style="fill:url(#linearGradient1497);fill-opacity:1;fill-rule:evenodd;stroke:#989898;stroke-width:0.85203391;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path18153"
+         d="M 20.625174,30.490479 C 18.519211,29.999928 7.7224803,17.987711 7.0314243,16.466377 C 7.0288882,16.460379 7.0336023,16.439689 7.0314243,16.434063 C 7.0259731,16.418307 7.002328,16.381764 7.0001743,16.369436 C 7.000203,16.366104 6.9997682,16.34006 7.0001743,16.337122 C 7.0013435,16.334982 7.0298695,16.338859 7.0314243,16.337122 L 7.1251743,16.240181 L 42.593924,16.240181 C 42.591209,16.264507 42.57124,16.307054 42.562674,16.337122 C 42.555173,16.360727 42.542103,16.407355 42.531424,16.434063 C 41.609326,18.615 31.023436,30.200512 29.187674,30.490479 C 29.172746,30.492123 29.138826,30.490479 29.125174,30.490479 L 20.750174,30.490479 C 20.719887,30.488811 20.66042,30.498689 20.625174,30.490479 z "
+         style="fill:url(#linearGradient1501);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         id="path1616"
+         d="M 20.875174,30.051141 C 18.427215,29.501671 8.7040003,18.433898 7.5314243,16.451725 L 42.125174,16.451725 C 40.634986,18.784896 31.078502,29.863516 28.968924,30.051141 C 28.960181,30.051543 28.946142,30.051141 28.937674,30.051141 L 21.031424,30.051141 C 21.00503,30.051141 20.966542,30.054692 20.937674,30.051141 C 20.917888,30.047995 20.896025,30.055821 20.875174,30.051141 z "
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:url(#linearGradient1503);stroke-width:0.85203373;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path1636"
+         d="M 20.959511,30.447113 L 9.018012,38.717969 L 11.237445,38.724076 L 21.23557,31.855136 L 30.057478,30.432298 L 20.959511,30.447113 z "
+         style="fill:url(#linearGradient1505);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <g
+       id="g2547"
+       transform="matrix(-1,0,0,-1,51.13668,43.97416)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         transform="matrix(0,-1,1,0,6.862005,36.36949)"
+         inkscape:r_cy="true"
+         inkscape:r_cx="true"
+         style="color:#000000;fill:url(#linearGradient2562);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2564);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+         d="M 3.2034501,25.835194 C 2.1729477,-5.3853369 28.741616,-0.4511153 28.582416,15.788689 L 35.89533,15.788689 L 24.517652,28.774671 L 12.585426,15.788689 C 12.585426,15.788689 20.126859,15.788689 20.126859,15.788689 C 20.583921,4.8193225 3.4092324,1.6100346 3.2034501,25.835194 z "
+         id="path1432"
+         sodipodi:nodetypes="ccccccc" />
+      <g
+         id="g1630"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true">
+        <path
+           style="opacity:0.47159089;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2566);stroke-width:0.99999934;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+           d="M 7.6642103,9.1041047 C 12.40638,-0.0400306 28.122336,2.7175443 27.761604,16.579393 L 34.078976,16.579393 C 34.078976,16.579393 24.513151,27.536769 24.513151,27.536769 L 14.41668,16.579393 C 14.41668,16.579393 20.87332,16.579393 20.87332,16.579393 C 21.144975,5.0041615 10.922265,5.5345215 7.6642103,9.1041047 z "
+           id="path2177"
+           sodipodi:nodetypes="ccccccc"
+           inkscape:r_cx="true"
+           inkscape:r_cy="true"
+           transform="matrix(0,-1,1,0,6.862005,36.36949)" />
+      </g>
+      <path
+         style="color:#000000;fill:url(#linearGradient2365);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:0.5"
+         d="M 19.15625,10.78125 C 19.101281,10.78233 19.055201,10.811245 19,10.8125 C 42.611777,11.277647 39.383669,28.172241 28.5,27.71875 C 28.5,27.71875 28.485986,20.190096 28.485986,20.190096 L 15.5,32.125 L 15.625,32.25 C 24.079405,29.915367 34.590688,32.533173 41.1875,25.90625 C 42.276575,18.717732 36.400886,10.442298 19.15625,10.78125 z "
+         transform="matrix(-1,0,0,-1,51.13668,43.97416)"
+         id="path2362"
+         sodipodi:nodetypes="cccccccc" />
+    </g>
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/go-next.svg b/src/maemo/pixmaps/go-next.svg
new file mode 100644 (file)
index 0000000..989bff5
--- /dev/null
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-next.svg"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions"
+   inkscape:version="0.43+devel"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48"
+   width="48"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:export-ydpi="90.000000"
+   version="1.0"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <linearGradient
+       id="linearGradient2591">
+      <stop
+         style="stop-color:#73d216"
+         offset="0"
+         id="stop2593" />
+      <stop
+         style="stop-color:#4e9a06"
+         offset="1.0000000"
+         id="stop2595" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8662"
+       inkscape:collect="always">
+      <stop
+         id="stop8664"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop8666"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient8650"
+       inkscape:collect="always">
+      <stop
+         id="stop8652"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop8654"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.046729,-3.749427e-16,2.853404e-16,1.557610,-19.51799,3.452086)"
+       r="17.171415"
+       fy="2.8969381"
+       fx="19.701141"
+       cy="2.8969381"
+       cx="19.701141"
+       id="radialGradient8656"
+       xlink:href="#linearGradient8650"
+       inkscape:collect="always" />
+    <radialGradient
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.000000,0.000000,0.000000,0.536723,2.511012e-15,16.87306)"
+       r="15.644737"
+       fy="36.421127"
+       fx="24.837126"
+       cy="36.421127"
+       cx="24.837126"
+       id="radialGradient8668"
+       xlink:href="#linearGradient8662"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2591"
+       id="radialGradient2597"
+       cx="22.291636"
+       cy="32.797512"
+       fx="22.291636"
+       fy="32.797512"
+       r="16.9562"
+       gradientTransform="matrix(0.843022,1.871885e-16,-2.265228e-16,1.020168,4.499298,1.381992)"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-y="25"
+     inkscape:window-x="0"
+     inkscape:window-height="885"
+     inkscape:window-width="1280"
+     inkscape:showpageshadow="false"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     showgrid="false"
+     inkscape:current-layer="layer1"
+     inkscape:cy="27.398876"
+     inkscape:cx="34.827552"
+     inkscape:zoom="11.313708"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     borderopacity="0.25490196"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     fill="#4e9a06"
+     stroke="#4e9a06" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:source>http://jimmac.musichall.cz</dc:source>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
+        <dc:title>Go Next</dc:title>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>go</rdf:li>
+            <rdf:li>next</rdf:li>
+            <rdf:li>right</rdf:li>
+            <rdf:li>arrow</rdf:li>
+            <rdf:li>pointer</rdf:li>
+            <rdf:li>&gt;</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Reproduction" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/Distribution" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Notice" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/Attribution" />
+        <cc:permits
+           rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://web.resource.org/cc/ShareAlike" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1"
+     id="layer1">
+    <path
+       transform="matrix(1.271186,0.000000,0.000000,1.271186,-8.119376,-15.10179)"
+       d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1  9.1923885,36.421127 A 15.644737 8.3968935 0 1 1  40.481863 36.421127 z"
+       sodipodi:ry="8.3968935"
+       sodipodi:rx="15.644737"
+       sodipodi:cy="36.421127"
+       sodipodi:cx="24.837126"
+       id="path8660"
+       style="opacity:0.29946522;color:#000000;fill:url(#radialGradient8668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:nodetypes="cccccccc"
+       id="path8643"
+       d="M 8.5541875,15.517348 L 8.5541875,32.511768 L 21.538,32.511768 L 21.538,41.056806 L 41.497835,24.150365 L 21.41919,7.1251168 L 21.41919,15.522652 L 8.5541875,15.517348 z "
+       style="opacity:1;color:#000000;fill:url(#radialGradient2597);fill-opacity:1;fill-rule:evenodd;stroke:#3a7304;stroke-width:1.00000036;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="cccccc"
+       id="path8645"
+       d="M 21.962385,8.2485033 L 21.962385,16.054978 L 9.1452151,16.054978 L 9.1452151,25.095691 C 26.895215,27.095691 25.778752,17.640403 40.528752,24.140403 L 21.962385,8.2485033 z "
+       style="opacity:0.5080214;color:#000000;fill:url(#radialGradient8656);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="opacity:0.48128339;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.00000036;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 9.537702,16.561892 L 9.537702,31.546332 L 22.523069,31.546332 L 22.523069,38.941498 L 40.001083,24.145807 L 22.507108,9.3654066 L 22.507108,16.566789 L 9.537702,16.561892 z "
+       id="path8658"
+       sodipodi:nodetypes="cccccccc" />
+  </g>
+</svg>
diff --git a/src/maemo/pixmaps/go-previous.svg b/src/maemo/pixmaps/go-previous.svg
new file mode 100644 (file)
index 0000000..f1eb977
--- /dev/null
@@ -0,0 +1,852 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="go-previous.svg"
+   sodipodi:docbase="/home/andreas/projekt/tango/scalable"
+   inkscape:version="0.42+0.43pre2"
+   sodipodi:version="0.32"
+   id="svg11300"
+   height="48px"
+   width="48px"
+   inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png"
+   inkscape:export-xdpi="90.000000"
+   inkscape:e