seahorse r2203 - in trunk: . daemon gkr libegg libegg/.deps libegg/.libs libseahorse pgp src ssh



Author: sadam
Date: Sun May  4 20:22:27 2008
New Revision: 2203
URL: http://svn.gnome.org/viewvc/seahorse?rev=2203&view=rev

Log:
2008-05-04  Adam Schreiber  <sadam clemson edu>

    * src/seahorse-key-manager.glade:
    * src/seahorse-revoke.c:
    * src/seahorse-sign.c:
    * src/seahorse-delete.c:
    * src/seahorse-add-uid.c:
    * src/seahorse-pgp-generate.glade:
    * src/seahorse-key-widget.c:
    * src/seahorse-ssh-key-properties.c:
    * src/seahorse-keyserver-results.c:
    * src/seahorse-keyserver-search.c:
    * src/seahorse-ssh-generate.c:
    * src/seahorse-add-subkey.c:
    * src/seahorse-keyserver-sync.c:
    * src/seahorse-key-manager-store.c:
    * src/seahorse-key-manager.c:
    * src/seahorse-preferences.c:
    * src/seahorse-gkeyring-item-properties.c:
    * src/seahorse-generate-select.c:
    * src/seahorse-photos.c:
    * src/main.c:
    * src/seahorse-pgp-generate.c:
    * src/seahorse-expires.c:
    * src/seahorse-ssh-upload.c:
    * src/Makefile.am:
    * src/seahorse-key-properties.c:
    * src/seahorse-add-subkey.glade:
    * INSTALL:
    * gkr/seahorse-gkeyring-item.c:
    * gkr/seahorse-gkeyring-operation.c:
    * gkr/seahorse-gkeyring-source.c:
    * configure.in:
    * pgp/seahorse-signer.c:
    * pgp/seahorse-pgp-key-op.c:
    * pgp/seahorse-server-source.c:
    * pgp/seahorse-gpg-options.c:
    * pgp/seahorse-pgp-key.c:
    * pgp/seahorse-ldap-source.c:
    * pgp/seahorse-hkp-source.c:
    * pgp/Makefile.am:
    * pgp/seahorse-pgp-operation.c:
    * pgp/seahorse-pgp-source.c:
    * ssh/seahorse-ssh-operation.c:
    * ssh/seahorse-ssh-source.c:
    * ssh/seahorse-ssh-askpass.c:
    * ssh/seahorse-ssh-key.c:
    * libseahorse/seahorse-keyserver-control.c:
    * libseahorse/seahorse-unix-signal.c:
    * libseahorse/seahorse-prefs-keyrings.c:
    * libseahorse/seahorse-passphrase.c:
    * libseahorse/seahorse-util.c:
    * libseahorse/seahorse-prefs.c:
    * libseahorse/seahorse-transfer-operation.c:
    * libseahorse/seahorse-widget.c:
    * libseahorse/seahorse-context.c:
    * libseahorse/seahorse-unknown-key.c:
    * libseahorse/seahorse-notification.c:
    * libseahorse/seahorse-key.c:
    * libseahorse/seahorse-dns-sd.c:
    * libseahorse/seahorse-unknown-source.c:
    * libseahorse/seahorse-operation.c:
    * libseahorse/seahorse-operation.h:
    * libseahorse/seahorse-validity.c:
    * libseahorse/seahorse-key-source.c:
    * libseahorse/seahorse-key-model.c:
    * daemon/seahorse-sharing.c:
    * daemon/seahorse-service.c:
    * daemon/seahorse-service-keyset.c:
    * daemon/seahorse-daemon.c:
    * daemon/seahorse-service-crypto.c:
    * daemon/seahorse-hkp-server.c:
    * Makefile.am:
    * libegg/: Added
    * libegg/Makefile.am: Added
    * libegg/egg-datetime.c: Added
    * libegg/egg-datetime.h: Added
    Remove dependency on libgnome/ui.  Patch from Saleem Abdulrasool. 
    Partially fixes bug #524018



Added:
   trunk/libegg/
   trunk/libegg/.deps/
   trunk/libegg/.deps/libeggdatetime_la-egg-datetime.Plo
   trunk/libegg/.libs/
   trunk/libegg/.libs/libeggdatetime.a   (contents, props changed)
   trunk/libegg/Makefile
   trunk/libegg/Makefile.am
   trunk/libegg/Makefile.in
   trunk/libegg/egg-datetime.c
   trunk/libegg/egg-datetime.h
   trunk/libegg/log
Modified:
   trunk/ChangeLog
   trunk/INSTALL
   trunk/Makefile.am
   trunk/configure.in
   trunk/daemon/seahorse-daemon.c
   trunk/daemon/seahorse-hkp-server.c
   trunk/daemon/seahorse-service-crypto.c
   trunk/daemon/seahorse-service-keyset.c
   trunk/daemon/seahorse-service.c
   trunk/daemon/seahorse-sharing.c
   trunk/gkr/seahorse-gkeyring-item.c
   trunk/gkr/seahorse-gkeyring-operation.c
   trunk/gkr/seahorse-gkeyring-source.c
   trunk/libseahorse/seahorse-context.c
   trunk/libseahorse/seahorse-dns-sd.c
   trunk/libseahorse/seahorse-key-model.c
   trunk/libseahorse/seahorse-key-source.c
   trunk/libseahorse/seahorse-key.c
   trunk/libseahorse/seahorse-keyserver-control.c
   trunk/libseahorse/seahorse-notification.c
   trunk/libseahorse/seahorse-operation.c
   trunk/libseahorse/seahorse-operation.h
   trunk/libseahorse/seahorse-passphrase.c
   trunk/libseahorse/seahorse-prefs-keyrings.c
   trunk/libseahorse/seahorse-prefs.c
   trunk/libseahorse/seahorse-transfer-operation.c
   trunk/libseahorse/seahorse-unix-signal.c
   trunk/libseahorse/seahorse-unknown-key.c
   trunk/libseahorse/seahorse-unknown-source.c
   trunk/libseahorse/seahorse-util.c
   trunk/libseahorse/seahorse-validity.c
   trunk/libseahorse/seahorse-widget.c
   trunk/pgp/Makefile.am
   trunk/pgp/seahorse-gpg-options.c
   trunk/pgp/seahorse-hkp-source.c
   trunk/pgp/seahorse-ldap-source.c
   trunk/pgp/seahorse-pgp-key-op.c
   trunk/pgp/seahorse-pgp-key.c
   trunk/pgp/seahorse-pgp-operation.c
   trunk/pgp/seahorse-pgp-source.c
   trunk/pgp/seahorse-server-source.c
   trunk/pgp/seahorse-signer.c
   trunk/src/Makefile.am
   trunk/src/main.c
   trunk/src/seahorse-add-subkey.c
   trunk/src/seahorse-add-subkey.glade
   trunk/src/seahorse-add-uid.c
   trunk/src/seahorse-delete.c
   trunk/src/seahorse-expires.c
   trunk/src/seahorse-generate-select.c
   trunk/src/seahorse-gkeyring-item-properties.c
   trunk/src/seahorse-key-manager-store.c
   trunk/src/seahorse-key-manager.c
   trunk/src/seahorse-key-manager.glade
   trunk/src/seahorse-key-properties.c
   trunk/src/seahorse-key-widget.c
   trunk/src/seahorse-keyserver-results.c
   trunk/src/seahorse-keyserver-search.c
   trunk/src/seahorse-keyserver-sync.c
   trunk/src/seahorse-pgp-generate.c
   trunk/src/seahorse-pgp-generate.glade
   trunk/src/seahorse-photos.c
   trunk/src/seahorse-preferences.c
   trunk/src/seahorse-revoke.c
   trunk/src/seahorse-sign.c
   trunk/src/seahorse-ssh-generate.c
   trunk/src/seahorse-ssh-key-properties.c
   trunk/src/seahorse-ssh-upload.c
   trunk/ssh/seahorse-ssh-askpass.c
   trunk/ssh/seahorse-ssh-key.c
   trunk/ssh/seahorse-ssh-operation.c
   trunk/ssh/seahorse-ssh-source.c

Modified: trunk/INSTALL
==============================================================================
--- trunk/INSTALL	(original)
+++ trunk/INSTALL	Sun May  4 20:22:27 2008
@@ -1,42 +1,11 @@
---------------------------------------------------------------------------------
-                          SEAHORSE INSTALLATION
---------------------------------------------------------------------------------
+Installation Instructions
+*************************
 
-Version 2.19.x
-
-Required Dependencies
-=====================
-
-   Make sure you have the following installed before you try and install 
-Seahorse. You may need to install 'devel' or 'dev' versions of these packages
-if your distro requires this.
-
- - GTK 2.16 (or a later 2.x version)
- - DBUS 0.35 (or later)
- - GPGME 1.x 
- - GnuPG 1.2.x or 1.4.x 
- - libgnome 2.14 (or later)
- - libgnomeui 2.x 
- - libglade 2.x 
- - GConf 2.x 
- - gnome-keyring 2.19.4 (or later)
-
-Optional Dependencies
-=====================
-
-   These are not required for a basic install of Seahorse, but additional 
-features will be enabled if these are present on your system. Again you may need
-to install 'devel' or 'dev' versions of these packages if your distro requires.
-
- - OpenLDAP 2.x (client libraries) 
- - libsoup 2.4
- - Avahi 0.6 (or later)
- - libnotify 0.3 (or later)
- - OpenSSH 
- 
-A summary of which features are enabled will be displayed after you run 
-'./configure' (see below).
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
 
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
 
 Basic Installation
 ==================

Modified: trunk/Makefile.am
==============================================================================
--- trunk/Makefile.am	(original)
+++ trunk/Makefile.am	Sun May  4 20:22:27 2008
@@ -8,7 +8,7 @@
 SSH_DIR = 
 endif
 
-SUBDIRS = \
+SUBDIRS = libegg \
 	libcryptui \
 	common \
 	libseahorse \

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Sun May  4 20:22:27 2008
@@ -41,8 +41,14 @@
 
 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
 
-PKG_CHECK_MODULES(SEAHORSE, libgnome-2.0 >= 2.14 libgnomeui-2.0
-                  libglade-2.0 gconf-2.0 gtk+-2.0 >= 2.10.0 gio-2.0)
+PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.10)
+AC_SUBST([GTK_LIBS])
+AC_SUBST([GTK_CFLAGS])
+ 
+  AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+PKG_CHECK_MODULES(SEAHORSE, libglade-2.0 gconf-2.0 gtk+-2.0 >= 2.10.0 
+gnome-vfs-2.0)
+
 
 AC_MSG_CHECKING([for some Win32 platform])
 case "$host" in
@@ -437,7 +443,7 @@
 	    [Compile binaries in debug mode]))
 
 if test "$enable_debug" = "yes"; then
-  CFLAGS="$CFLAGS -g -O0 -Wall"
+  CFLAGS="$CFLAGS -g -O0 -DBONOBO_DISABLE_DEPRECATED -DDISABLE_DEPRECATED -Wall -Werror"
   AC_DEFINE_UNQUOTED(_DEBUG, 1, [In debug mode])
   echo "enabling debug compile mode"
 else 
@@ -499,6 +505,7 @@
 libcryptui/cryptui.pc
 libcryptui/Makefile
 libcryptui/tests/Makefile
+libegg/Makefile
 libseahorse/Makefile
 pgp/Makefile
 po/Makefile.in

Modified: trunk/daemon/seahorse-daemon.c
==============================================================================
--- trunk/daemon/seahorse-daemon.c	(original)
+++ trunk/daemon/seahorse-daemon.c	Sun May  4 20:22:27 2008
@@ -37,7 +37,7 @@
 #include "ssh/seahorse-ssh.h"
 #endif
 
-#include <gnome.h>
+#include <glib/gi18n.h>
 
 #include <sys/types.h>
 #include <sys/signal.h>
@@ -176,16 +176,9 @@
     g_log_set_handler ("Gnome", flags, log_handler, NULL);
 }
 
-static void
-client_die ()
-{
-    gtk_main_quit ();
-}
-
 int main(int argc, char* argv[])
 {
     SeahorseOperation *op;
-    GnomeClient *client = NULL;
     GOptionContext *octx = NULL;
 
     seahorse_secure_memory_init ();
@@ -193,10 +186,7 @@
     octx = g_option_context_new ("");
     g_option_context_add_main_entries (octx, options, GETTEXT_PACKAGE);
 
-    gnome_program_init ("seahorse-daemon", VERSION, LIBGNOMEUI_MODULE, argc, argv,
-                    GNOME_PARAM_GOPTION_CONTEXT, octx,
-                    GNOME_PARAM_HUMAN_READABLE_NAME, _("Encryption Daemon (Seahorse)"),
-                    GNOME_PARAM_APP_DATADIR, DATA_DIR, NULL);
+    gtk_init_with_args (&argc, &argv, _("Encryption Daemon (Seahorse)"), (GOptionEntry *) options, GETTEXT_PACKAGE, NULL);
 
     /* 
      * All functions after this point have to print messages 
@@ -212,9 +202,6 @@
     if (!daemon_no_daemonize)
         seahorse_gconf_disconnect ();    
         
-    client = gnome_master_client();
-    g_signal_connect(client, "die", G_CALLBACK(client_die), NULL);
-    
     /* We log to the syslog */
     prepare_logging ();
 

Modified: trunk/daemon/seahorse-hkp-server.c
==============================================================================
--- trunk/daemon/seahorse-hkp-server.c	(original)
+++ trunk/daemon/seahorse-hkp-server.c	Sun May  4 20:22:27 2008
@@ -19,10 +19,12 @@
  * Boston, MA 02111-1307, USA.
  */
  
-#include <gnome.h>
 #include <libsoup/soup.h>
 
 #include "config.h"
+#include "errno.h"
+#include "string.h"
+
 #include "seahorse-daemon.h"
 
 #include "pgp/seahorse-gpgmex.h"

Modified: trunk/daemon/seahorse-service-crypto.c
==============================================================================
--- trunk/daemon/seahorse-service-crypto.c	(original)
+++ trunk/daemon/seahorse-service-crypto.c	Sun May  4 20:22:27 2008
@@ -31,7 +31,10 @@
 #include "pgp/seahorse-pgp-key.h"
 #include "pgp/seahorse-pgp-operation.h"
 
+#include <string.h>
+
 #include <glib.h>
+#include <glib/gi18n.h>
 
 /* flags from seahorse-service-cyrpto.xml */
 #define FLAG_QUIET 0x01
@@ -80,7 +83,7 @@
         
         data = gpgme_data_release_and_get_mem (cryptdata, &len);
         *result = g_strndup (data, len);
-        free (data);
+        g_free (data);
         
         return TRUE;
         

Modified: trunk/daemon/seahorse-service-keyset.c
==============================================================================
--- trunk/daemon/seahorse-service-keyset.c	(original)
+++ trunk/daemon/seahorse-service-keyset.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,11 @@
  */
 
 #include "config.h"
+
+#include <string.h>
+
 #include <glib.h>
+#include <glib/gi18n.h>
 
 #include "seahorse-service.h"
 #include "seahorse-util.h"

Modified: trunk/daemon/seahorse-service.c
==============================================================================
--- trunk/daemon/seahorse-service.c	(original)
+++ trunk/daemon/seahorse-service.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,12 @@
  */
 
 #include "config.h"
+
+#include <string.h>
+
 #include <glib.h>
+#include <glib/gi18n.h>
+
 #include <dbus/dbus-glib-bindings.h>
 
 #include "seahorse-daemon.h"

Modified: trunk/daemon/seahorse-sharing.c
==============================================================================
--- trunk/daemon/seahorse-sharing.c	(original)
+++ trunk/daemon/seahorse-sharing.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
 
 #include <config.h>
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include <avahi-client/client.h>
 #include <avahi-client/publish.h>

Modified: trunk/gkr/seahorse-gkeyring-item.c
==============================================================================
--- trunk/gkr/seahorse-gkeyring-item.c	(original)
+++ trunk/gkr/seahorse-gkeyring-item.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,10 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <string.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-context.h"
 #include "seahorse-key-source.h"
@@ -35,6 +38,11 @@
 #include "ssh/seahorse-ssh-key.h"
 #endif 
 
+/* XXX Copied from libgnomeui */
+#define GNOME_STOCK_AUTHENTICATION      "gnome-stock-authentication"
+#define GNOME_STOCK_BOOK_OPEN           "gnome-stock-book-open"
+#define GNOME_STOCK_BLANK               "gnome-stock-blank"
+
 enum {
     PROP_0,
     PROP_ITEM_ID,

Modified: trunk/gkr/seahorse-gkeyring-operation.c
==============================================================================
--- trunk/gkr/seahorse-gkeyring-operation.c	(original)
+++ trunk/gkr/seahorse-gkeyring-operation.c	Sun May  4 20:22:27 2008
@@ -20,11 +20,13 @@
  */
 
 #include "config.h"
+
 #include <sys/wait.h>
 #include <sys/socket.h>
-#include <gnome.h>
 #include <fcntl.h>
 
+#include <glib/gi18n.h>
+
 #include "seahorse-gkeyring-operation.h"
 #include "seahorse-util.h"
 #include "seahorse-passphrase.h"

Modified: trunk/gkr/seahorse-gkeyring-source.c
==============================================================================
--- trunk/gkr/seahorse-gkeyring-source.c	(original)
+++ trunk/gkr/seahorse-gkeyring-source.c	Sun May  4 20:22:27 2008
@@ -20,9 +20,12 @@
  */
 
 #include "config.h"
+
 #include <stdlib.h>
+#include <string.h>
 #include <libintl.h>
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-gkeyring-source.h"
 #include "seahorse-operation.h"

Added: trunk/libegg/.deps/libeggdatetime_la-egg-datetime.Plo
==============================================================================
--- (empty file)
+++ trunk/libegg/.deps/libeggdatetime_la-egg-datetime.Plo	Sun May  4 20:22:27 2008
@@ -0,0 +1,1168 @@
+libeggdatetime_la-egg-datetime.lo libeggdatetime_la-egg-datetime.o:  \
+ egg-datetime.c /usr/include/libintl.h /usr/include/features.h \
+  /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
+  /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
+  /usr/include/stdio.h /usr/lib/gcc/i486-linux-gnu/4.2.3/include/stddef.h \
+  /usr/include/bits/types.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/lib/gcc/i486-linux-gnu/4.2.3/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/string.h /usr/include/time.h /usr/include/bits/time.h \
+  /usr/include/gtk-2.0/gdk/gdkkeysyms.h /usr/include/gtk-2.0/gtk/gtk.h \
+  /usr/include/gtk-2.0/gdk/gdk.h /usr/include/gtk-2.0/gdk/gdkcairo.h \
+  /usr/include/gtk-2.0/gdk/gdkcolor.h /usr/include/cairo/cairo.h \
+  /usr/include/cairo/cairo-features.h \
+  /usr/include/cairo/cairo-deprecated.h \
+  /usr/include/gtk-2.0/gdk/gdktypes.h /usr/include/glib-2.0/glib.h \
+  /usr/include/glib-2.0/glib/galloca.h \
+  /usr/include/glib-2.0/glib/gtypes.h \
+  /usr/lib/glib-2.0/include/glibconfig.h \
+  /usr/include/glib-2.0/glib/gmacros.h \
+  /usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h \
+  /usr/lib/gcc/i486-linux-gnu/4.2.3/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h \
+  /usr/lib/gcc/i486-linux-gnu/4.2.3/include/float.h \
+  /usr/include/glib-2.0/glib/garray.h \
+  /usr/include/glib-2.0/glib/gasyncqueue.h \
+  /usr/include/glib-2.0/glib/gthread.h \
+  /usr/include/glib-2.0/glib/gerror.h /usr/include/glib-2.0/glib/gquark.h \
+  /usr/include/glib-2.0/glib/gutils.h \
+  /usr/include/glib-2.0/glib/gatomic.h \
+  /usr/include/glib-2.0/glib/gbacktrace.h \
+  /usr/include/glib-2.0/glib/gbase64.h \
+  /usr/include/glib-2.0/glib/gbookmarkfile.h \
+  /usr/include/glib-2.0/glib/gcache.h /usr/include/glib-2.0/glib/glist.h \
+  /usr/include/glib-2.0/glib/gmem.h /usr/include/glib-2.0/glib/gslice.h \
+  /usr/include/glib-2.0/glib/gchecksum.h \
+  /usr/include/glib-2.0/glib/gcompletion.h \
+  /usr/include/glib-2.0/glib/gconvert.h \
+  /usr/include/glib-2.0/glib/gdataset.h \
+  /usr/include/glib-2.0/glib/gdate.h /usr/include/glib-2.0/glib/gdir.h \
+  /usr/include/glib-2.0/glib/gfileutils.h \
+  /usr/include/glib-2.0/glib/ghash.h /usr/include/glib-2.0/glib/ghook.h \
+  /usr/include/glib-2.0/glib/giochannel.h \
+  /usr/include/glib-2.0/glib/gmain.h /usr/include/glib-2.0/glib/gslist.h \
+  /usr/include/glib-2.0/glib/gstring.h \
+  /usr/include/glib-2.0/glib/gunicode.h \
+  /usr/include/glib-2.0/glib/gkeyfile.h \
+  /usr/include/glib-2.0/glib/gmappedfile.h \
+  /usr/include/glib-2.0/glib/gmarkup.h \
+  /usr/include/glib-2.0/glib/gmessages.h \
+  /usr/include/glib-2.0/glib/gnode.h /usr/include/glib-2.0/glib/goption.h \
+  /usr/include/glib-2.0/glib/gpattern.h \
+  /usr/include/glib-2.0/glib/gprimes.h \
+  /usr/include/glib-2.0/glib/gqsort.h /usr/include/glib-2.0/glib/gqueue.h \
+  /usr/include/glib-2.0/glib/grand.h /usr/include/glib-2.0/glib/grel.h \
+  /usr/include/glib-2.0/glib/gregex.h \
+  /usr/include/glib-2.0/glib/gscanner.h \
+  /usr/include/glib-2.0/glib/gsequence.h \
+  /usr/include/glib-2.0/glib/gshell.h /usr/include/glib-2.0/glib/gspawn.h \
+  /usr/include/glib-2.0/glib/gstrfuncs.h \
+  /usr/include/glib-2.0/glib/gtestutils.h \
+  /usr/include/glib-2.0/glib/gthreadpool.h \
+  /usr/include/glib-2.0/glib/gtimer.h /usr/include/glib-2.0/glib/gtree.h \
+  /usr/include/glib-2.0/glib/gurifuncs.h \
+  /usr/include/pango-1.0/pango/pango.h \
+  /usr/include/pango-1.0/pango/pango-attributes.h \
+  /usr/include/pango-1.0/pango/pango-font.h \
+  /usr/include/pango-1.0/pango/pango-coverage.h \
+  /usr/include/pango-1.0/pango/pango-types.h \
+  /usr/include/glib-2.0/glib-object.h \
+  /usr/include/glib-2.0/gobject/gboxed.h \
+  /usr/include/glib-2.0/gobject/gtype.h \
+  /usr/include/glib-2.0/gobject/genums.h \
+  /usr/include/glib-2.0/gobject/gobject.h \
+  /usr/include/glib-2.0/gobject/gvalue.h \
+  /usr/include/glib-2.0/gobject/gparam.h \
+  /usr/include/glib-2.0/gobject/gclosure.h \
+  /usr/include/glib-2.0/gobject/gsignal.h \
+  /usr/include/glib-2.0/gobject/gmarshal.h \
+  /usr/include/glib-2.0/gobject/gparamspecs.h \
+  /usr/include/glib-2.0/gobject/gsourceclosure.h \
+  /usr/include/glib-2.0/gobject/gtypemodule.h \
+  /usr/include/glib-2.0/gobject/gtypeplugin.h \
+  /usr/include/glib-2.0/gobject/gvaluearray.h \
+  /usr/include/glib-2.0/gobject/gvaluetypes.h \
+  /usr/include/pango-1.0/pango/pango-gravity.h \
+  /usr/include/pango-1.0/pango/pango-matrix.h \
+  /usr/include/pango-1.0/pango/pango-script.h \
+  /usr/include/pango-1.0/pango/pango-language.h \
+  /usr/include/pango-1.0/pango/pango-break.h \
+  /usr/include/pango-1.0/pango/pango-item.h \
+  /usr/include/pango-1.0/pango/pango-context.h \
+  /usr/include/pango-1.0/pango/pango-fontmap.h \
+  /usr/include/pango-1.0/pango/pango-fontset.h \
+  /usr/include/pango-1.0/pango/pango-engine.h \
+  /usr/include/pango-1.0/pango/pango-glyph.h \
+  /usr/include/pango-1.0/pango/pango-enum-types.h \
+  /usr/include/pango-1.0/pango/pango-features.h \
+  /usr/include/pango-1.0/pango/pango-glyph-item.h \
+  /usr/include/pango-1.0/pango/pango-layout.h \
+  /usr/include/pango-1.0/pango/pango-tabs.h \
+  /usr/include/pango-1.0/pango/pango-renderer.h \
+  /usr/include/pango-1.0/pango/pango-utils.h \
+  /usr/lib/gtk-2.0/include/gdkconfig.h \
+  /usr/include/gtk-2.0/gdk/gdkpixbuf.h /usr/include/gtk-2.0/gdk/gdkrgb.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h \
+  /usr/include/glib-2.0/gmodule.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h \
+  /usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h \
+  /usr/include/pango-1.0/pango/pangocairo.h \
+  /usr/include/gtk-2.0/gdk/gdkcursor.h \
+  /usr/include/gtk-2.0/gdk/gdkdisplay.h \
+  /usr/include/gtk-2.0/gdk/gdkevents.h /usr/include/gtk-2.0/gdk/gdkdnd.h \
+  /usr/include/gtk-2.0/gdk/gdkinput.h \
+  /usr/include/gtk-2.0/gdk/gdkdrawable.h /usr/include/gtk-2.0/gdk/gdkgc.h \
+  /usr/include/gtk-2.0/gdk/gdkenumtypes.h \
+  /usr/include/gtk-2.0/gdk/gdkfont.h /usr/include/gtk-2.0/gdk/gdkimage.h \
+  /usr/include/gtk-2.0/gdk/gdkkeys.h \
+  /usr/include/gtk-2.0/gdk/gdkdisplaymanager.h \
+  /usr/include/gtk-2.0/gdk/gdkpango.h \
+  /usr/include/gtk-2.0/gdk/gdkpixmap.h \
+  /usr/include/gtk-2.0/gdk/gdkproperty.h \
+  /usr/include/gtk-2.0/gdk/gdkregion.h \
+  /usr/include/gtk-2.0/gdk/gdkscreen.h \
+  /usr/include/gtk-2.0/gdk/gdkselection.h \
+  /usr/include/gtk-2.0/gdk/gdkspawn.h \
+  /usr/include/gtk-2.0/gdk/gdkvisual.h \
+  /usr/include/gtk-2.0/gdk/gdkwindow.h \
+  /usr/include/gtk-2.0/gtk/gtkaboutdialog.h \
+  /usr/include/gtk-2.0/gtk/gtkdialog.h \
+  /usr/include/gtk-2.0/gtk/gtkwindow.h \
+  /usr/include/gtk-2.0/gtk/gtkaccelgroup.h \
+  /usr/include/gtk-2.0/gtk/gtkenums.h /usr/include/gtk-2.0/gtk/gtkbin.h \
+  /usr/include/gtk-2.0/gtk/gtkcontainer.h \
+  /usr/include/gtk-2.0/gtk/gtkwidget.h \
+  /usr/include/gtk-2.0/gtk/gtkobject.h \
+  /usr/include/gtk-2.0/gtk/gtktypeutils.h \
+  /usr/include/gtk-2.0/gtk/gtktypebuiltins.h \
+  /usr/include/gtk-2.0/gtk/gtkdebug.h \
+  /usr/include/gtk-2.0/gtk/gtkadjustment.h \
+  /usr/include/gtk-2.0/gtk/gtkstyle.h \
+  /usr/include/gtk-2.0/gtk/gtksettings.h /usr/include/gtk-2.0/gtk/gtkrc.h \
+  /usr/include/atk-1.0/atk/atkobject.h \
+  /usr/include/atk-1.0/atk/atkstate.h \
+  /usr/include/atk-1.0/atk/atkrelationtype.h \
+  /usr/include/gtk-2.0/gtk/gtkaccellabel.h \
+  /usr/include/gtk-2.0/gtk/gtklabel.h /usr/include/gtk-2.0/gtk/gtkmisc.h \
+  /usr/include/gtk-2.0/gtk/gtkmenu.h \
+  /usr/include/gtk-2.0/gtk/gtkmenushell.h \
+  /usr/include/gtk-2.0/gtk/gtkaccelmap.h \
+  /usr/include/gtk-2.0/gtk/gtkaccessible.h /usr/include/atk-1.0/atk/atk.h \
+  /usr/include/atk-1.0/atk/atkaction.h \
+  /usr/include/atk-1.0/atk/atkcomponent.h \
+  /usr/include/atk-1.0/atk/atkutil.h \
+  /usr/include/atk-1.0/atk/atkdocument.h \
+  /usr/include/atk-1.0/atk/atkeditabletext.h \
+  /usr/include/atk-1.0/atk/atktext.h \
+  /usr/include/atk-1.0/atk/atkgobjectaccessible.h \
+  /usr/include/atk-1.0/atk/atkhyperlink.h \
+  /usr/include/atk-1.0/atk/atkhyperlinkimpl.h \
+  /usr/include/atk-1.0/atk/atkhypertext.h \
+  /usr/include/atk-1.0/atk/atkimage.h \
+  /usr/include/atk-1.0/atk/atknoopobject.h \
+  /usr/include/atk-1.0/atk/atknoopobjectfactory.h \
+  /usr/include/atk-1.0/atk/atkobjectfactory.h \
+  /usr/include/atk-1.0/atk/atkregistry.h \
+  /usr/include/atk-1.0/atk/atkobjectfactory.h \
+  /usr/include/atk-1.0/atk/atkrelation.h \
+  /usr/include/atk-1.0/atk/atkrelationset.h \
+  /usr/include/atk-1.0/atk/atkselection.h \
+  /usr/include/atk-1.0/atk/atkstateset.h \
+  /usr/include/atk-1.0/atk/atkstreamablecontent.h \
+  /usr/include/atk-1.0/atk/atktable.h /usr/include/atk-1.0/atk/atkmisc.h \
+  /usr/include/atk-1.0/atk/atkvalue.h \
+  /usr/include/gtk-2.0/gtk/gtkaction.h \
+  /usr/include/gtk-2.0/gtk/gtkactiongroup.h \
+  /usr/include/gtk-2.0/gtk/gtkitemfactory.h \
+  /usr/include/gtk-2.0/gtk/gtkalignment.h \
+  /usr/include/gtk-2.0/gtk/gtkarrow.h \
+  /usr/include/gtk-2.0/gtk/gtkaspectframe.h \
+  /usr/include/gtk-2.0/gtk/gtkframe.h \
+  /usr/include/gtk-2.0/gtk/gtkassistant.h \
+  /usr/include/gtk-2.0/gtk/gtkbbox.h /usr/include/gtk-2.0/gtk/gtkbox.h \
+  /usr/include/gtk-2.0/gtk/gtkbindings.h \
+  /usr/include/gtk-2.0/gtk/gtkbuildable.h \
+  /usr/include/gtk-2.0/gtk/gtkbuilder.h \
+  /usr/include/gtk-2.0/gtk/gtkbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkimage.h \
+  /usr/include/gtk-2.0/gtk/gtkcalendar.h \
+  /usr/include/gtk-2.0/gtk/gtksignal.h \
+  /usr/include/gtk-2.0/gtk/gtkmarshal.h \
+  /usr/include/gtk-2.0/gtk/gtkcelllayout.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrenderer.h \
+  /usr/include/gtk-2.0/gtk/gtkcelleditable.h \
+  /usr/include/gtk-2.0/gtk/gtktreeviewcolumn.h \
+  /usr/include/gtk-2.0/gtk/gtktreemodel.h \
+  /usr/include/gtk-2.0/gtk/gtktreesortable.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrendereraccel.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrenderertext.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrenderercombo.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrenderertext.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrendererprogress.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrendererspin.h \
+  /usr/include/gtk-2.0/gtk/gtkcellrenderertoggle.h \
+  /usr/include/gtk-2.0/gtk/gtkcellview.h \
+  /usr/include/gtk-2.0/gtk/gtkcheckbutton.h \
+  /usr/include/gtk-2.0/gtk/gtktogglebutton.h \
+  /usr/include/gtk-2.0/gtk/gtkcheckmenuitem.h \
+  /usr/include/gtk-2.0/gtk/gtkmenuitem.h \
+  /usr/include/gtk-2.0/gtk/gtkitem.h \
+  /usr/include/gtk-2.0/gtk/gtkclipboard.h \
+  /usr/include/gtk-2.0/gtk/gtkselection.h \
+  /usr/include/gtk-2.0/gtk/gtktextiter.h \
+  /usr/include/gtk-2.0/gtk/gtktexttag.h \
+  /usr/include/gtk-2.0/gtk/gtktextchild.h \
+  /usr/include/gtk-2.0/gtk/gtkclist.h \
+  /usr/include/gtk-2.0/gtk/gtkcolorbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkcolorsel.h \
+  /usr/include/gtk-2.0/gtk/gtkvbox.h \
+  /usr/include/gtk-2.0/gtk/gtkcolorseldialog.h \
+  /usr/include/gtk-2.0/gtk/gtkcombo.h \
+  /usr/include/gtk-2.0/gtk/gtkcombobox.h \
+  /usr/include/gtk-2.0/gtk/gtktreeview.h \
+  /usr/include/gtk-2.0/gtk/gtkdnd.h /usr/include/gtk-2.0/gtk/gtkentry.h \
+  /usr/include/gtk-2.0/gtk/gtkeditable.h \
+  /usr/include/gtk-2.0/gtk/gtkimcontext.h \
+  /usr/include/gtk-2.0/gtk/gtkentrycompletion.h \
+  /usr/include/gtk-2.0/gtk/gtkliststore.h \
+  /usr/include/gtk-2.0/gtk/gtktreemodelfilter.h \
+  /usr/include/gtk-2.0/gtk/gtkcomboboxentry.h \
+  /usr/include/gtk-2.0/gtk/gtkctree.h /usr/include/gtk-2.0/gtk/gtkcurve.h \
+  /usr/include/gtk-2.0/gtk/gtkdrawingarea.h \
+  /usr/include/gtk-2.0/gtk/gtkeventbox.h \
+  /usr/include/gtk-2.0/gtk/gtkexpander.h \
+  /usr/include/gtk-2.0/gtk/gtkfilesel.h \
+  /usr/include/gtk-2.0/gtk/gtkfixed.h \
+  /usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkhbox.h \
+  /usr/include/gtk-2.0/gtk/gtkfilechooser.h \
+  /usr/include/gtk-2.0/gtk/gtkfilefilter.h \
+  /usr/include/gtk-2.0/gtk/gtkfilechooserdialog.h \
+  /usr/include/gtk-2.0/gtk/gtkfilechooser.h \
+  /usr/include/gtk-2.0/gtk/gtkfilechooserwidget.h \
+  /usr/include/gtk-2.0/gtk/gtkfontbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkfontsel.h \
+  /usr/include/gtk-2.0/gtk/gtkgamma.h /usr/include/gtk-2.0/gtk/gtkgc.h \
+  /usr/include/gtk-2.0/gtk/gtkhandlebox.h \
+  /usr/include/gtk-2.0/gtk/gtkhbbox.h \
+  /usr/include/gtk-2.0/gtk/gtkhpaned.h \
+  /usr/include/gtk-2.0/gtk/gtkpaned.h \
+  /usr/include/gtk-2.0/gtk/gtkhruler.h \
+  /usr/include/gtk-2.0/gtk/gtkruler.h \
+  /usr/include/gtk-2.0/gtk/gtkhscale.h \
+  /usr/include/gtk-2.0/gtk/gtkscale.h /usr/include/gtk-2.0/gtk/gtkrange.h \
+  /usr/include/gtk-2.0/gtk/gtkhscrollbar.h \
+  /usr/include/gtk-2.0/gtk/gtkscrollbar.h \
+  /usr/include/gtk-2.0/gtk/gtkhseparator.h \
+  /usr/include/gtk-2.0/gtk/gtkseparator.h \
+  /usr/include/gtk-2.0/gtk/gtkiconfactory.h \
+  /usr/include/gtk-2.0/gtk/gtkicontheme.h \
+  /usr/include/gtk-2.0/gtk/gtkiconview.h \
+  /usr/include/gtk-2.0/gtk/gtktooltip.h \
+  /usr/include/gtk-2.0/gtk/gtkwidget.h \
+  /usr/include/gtk-2.0/gtk/gtkwindow.h \
+  /usr/include/gtk-2.0/gtk/gtkimagemenuitem.h \
+  /usr/include/gtk-2.0/gtk/gtkimcontextsimple.h \
+  /usr/include/gtk-2.0/gtk/gtkimmulticontext.h \
+  /usr/include/gtk-2.0/gtk/gtkinputdialog.h \
+  /usr/include/gtk-2.0/gtk/gtkinvisible.h \
+  /usr/include/gtk-2.0/gtk/gtklayout.h \
+  /usr/include/gtk-2.0/gtk/gtklinkbutton.h \
+  /usr/include/gtk-2.0/gtk/gtklist.h \
+  /usr/include/gtk-2.0/gtk/gtklistitem.h \
+  /usr/include/gtk-2.0/gtk/gtkmain.h \
+  /usr/include/gtk-2.0/gtk/gtkmenubar.h \
+  /usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkmenu.h \
+  /usr/include/gtk-2.0/gtk/gtktoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtktoolitem.h \
+  /usr/include/gtk-2.0/gtk/gtktooltips.h \
+  /usr/include/gtk-2.0/gtk/gtkmessagedialog.h \
+  /usr/include/gtk-2.0/gtk/gtkmodules.h \
+  /usr/include/gtk-2.0/gtk/gtknotebook.h \
+  /usr/include/gtk-2.0/gtk/gtkoldeditable.h \
+  /usr/include/gtk-2.0/gtk/gtkoptionmenu.h \
+  /usr/include/gtk-2.0/gtk/gtkpixmap.h /usr/include/gtk-2.0/gtk/gtkplug.h \
+  /usr/include/gtk-2.0/gtk/gtksocket.h \
+  /usr/include/gtk-2.0/gtk/gtkpreview.h \
+  /usr/include/gtk-2.0/gtk/gtkprintoperation.h \
+  /usr/include/gtk-2.0/gtk/gtkmain.h /usr/include/gtk-2.0/gtk/gtkenums.h \
+  /usr/include/gtk-2.0/gtk/gtkpagesetup.h \
+  /usr/include/gtk-2.0/gtk/gtkpapersize.h \
+  /usr/include/gtk-2.0/gtk/gtkprintsettings.h \
+  /usr/include/gtk-2.0/gtk/gtkprintcontext.h \
+  /usr/include/gtk-2.0/gtk/gtkprintoperationpreview.h \
+  /usr/include/gtk-2.0/gtk/gtkprogress.h \
+  /usr/include/gtk-2.0/gtk/gtkprogressbar.h \
+  /usr/include/gtk-2.0/gtk/gtkradioaction.h \
+  /usr/include/gtk-2.0/gtk/gtktoggleaction.h \
+  /usr/include/gtk-2.0/gtk/gtkradiobutton.h \
+  /usr/include/gtk-2.0/gtk/gtkradiomenuitem.h \
+  /usr/include/gtk-2.0/gtk/gtkradiotoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtktoggletoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtktoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentaction.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentmanager.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentchooser.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentmanager.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentfilter.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentchooserdialog.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentchooser.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentchoosermenu.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentchooserwidget.h \
+  /usr/include/gtk-2.0/gtk/gtkrecentfilter.h \
+  /usr/include/gtk-2.0/gtk/gtkscalebutton.h \
+  /usr/include/gtk-2.0/gtk/gtkscrolledwindow.h \
+  /usr/include/gtk-2.0/gtk/gtkvscrollbar.h \
+  /usr/include/gtk-2.0/gtk/gtkviewport.h \
+  /usr/include/gtk-2.0/gtk/gtkseparatormenuitem.h \
+  /usr/include/gtk-2.0/gtk/gtkseparatortoolitem.h \
+  /usr/include/gtk-2.0/gtk/gtksizegroup.h \
+  /usr/include/gtk-2.0/gtk/gtkspinbutton.h \
+  /usr/include/gtk-2.0/gtk/gtkstatusbar.h \
+  /usr/include/gtk-2.0/gtk/gtkstatusicon.h \
+  /usr/include/gtk-2.0/gtk/gtkstock.h /usr/include/gtk-2.0/gtk/gtktable.h \
+  /usr/include/gtk-2.0/gtk/gtktearoffmenuitem.h \
+  /usr/include/gtk-2.0/gtk/gtktext.h \
+  /usr/include/gtk-2.0/gtk/gtktextbuffer.h \
+  /usr/include/gtk-2.0/gtk/gtktexttagtable.h \
+  /usr/include/gtk-2.0/gtk/gtktextmark.h \
+  /usr/include/gtk-2.0/gtk/gtktextbufferrichtext.h \
+  /usr/include/gtk-2.0/gtk/gtktextview.h \
+  /usr/include/gtk-2.0/gtk/gtktipsquery.h \
+  /usr/include/gtk-2.0/gtk/gtktoggletoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtktoolbar.h \
+  /usr/include/gtk-2.0/gtk/gtktoolbutton.h \
+  /usr/include/gtk-2.0/gtk/gtktoolitem.h \
+  /usr/include/gtk-2.0/gtk/gtktree.h \
+  /usr/include/gtk-2.0/gtk/gtktreednd.h \
+  /usr/include/gtk-2.0/gtk/gtktreeitem.h \
+  /usr/include/gtk-2.0/gtk/gtktreemodelsort.h \
+  /usr/include/gtk-2.0/gtk/gtktreeselection.h \
+  /usr/include/gtk-2.0/gtk/gtktreestore.h \
+  /usr/include/gtk-2.0/gtk/gtkuimanager.h \
+  /usr/include/gtk-2.0/gtk/gtkvbbox.h \
+  /usr/include/gtk-2.0/gtk/gtkversion.h \
+  /usr/include/gtk-2.0/gtk/gtkvolumebutton.h \
+  /usr/include/gtk-2.0/gtk/gtkvpaned.h \
+  /usr/include/gtk-2.0/gtk/gtkvruler.h \
+  /usr/include/gtk-2.0/gtk/gtkvscale.h \
+  /usr/include/gtk-2.0/gtk/gtkvseparator.h egg-datetime.h
+
+/usr/include/libintl.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/gnu/stubs-32.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.2.3/include/stddef.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.2.3/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/string.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/gtk-2.0/gdk/gdkkeysyms.h:
+
+/usr/include/gtk-2.0/gtk/gtk.h:
+
+/usr/include/gtk-2.0/gdk/gdk.h:
+
+/usr/include/gtk-2.0/gdk/gdkcairo.h:
+
+/usr/include/gtk-2.0/gdk/gdkcolor.h:
+
+/usr/include/cairo/cairo.h:
+
+/usr/include/cairo/cairo-features.h:
+
+/usr/include/cairo/cairo-deprecated.h:
+
+/usr/include/gtk-2.0/gdk/gdktypes.h:
+
+/usr/include/glib-2.0/glib.h:
+
+/usr/include/glib-2.0/glib/galloca.h:
+
+/usr/include/glib-2.0/glib/gtypes.h:
+
+/usr/lib/glib-2.0/include/glibconfig.h:
+
+/usr/include/glib-2.0/glib/gmacros.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.2.3/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/lib/gcc/i486-linux-gnu/4.2.3/include/float.h:
+
+/usr/include/glib-2.0/glib/garray.h:
+
+/usr/include/glib-2.0/glib/gasyncqueue.h:
+
+/usr/include/glib-2.0/glib/gthread.h:
+
+/usr/include/glib-2.0/glib/gerror.h:
+
+/usr/include/glib-2.0/glib/gquark.h:
+
+/usr/include/glib-2.0/glib/gutils.h:
+
+/usr/include/glib-2.0/glib/gatomic.h:
+
+/usr/include/glib-2.0/glib/gbacktrace.h:
+
+/usr/include/glib-2.0/glib/gbase64.h:
+
+/usr/include/glib-2.0/glib/gbookmarkfile.h:
+
+/usr/include/glib-2.0/glib/gcache.h:
+
+/usr/include/glib-2.0/glib/glist.h:
+
+/usr/include/glib-2.0/glib/gmem.h:
+
+/usr/include/glib-2.0/glib/gslice.h:
+
+/usr/include/glib-2.0/glib/gchecksum.h:
+
+/usr/include/glib-2.0/glib/gcompletion.h:
+
+/usr/include/glib-2.0/glib/gconvert.h:
+
+/usr/include/glib-2.0/glib/gdataset.h:
+
+/usr/include/glib-2.0/glib/gdate.h:
+
+/usr/include/glib-2.0/glib/gdir.h:
+
+/usr/include/glib-2.0/glib/gfileutils.h:
+
+/usr/include/glib-2.0/glib/ghash.h:
+
+/usr/include/glib-2.0/glib/ghook.h:
+
+/usr/include/glib-2.0/glib/giochannel.h:
+
+/usr/include/glib-2.0/glib/gmain.h:
+
+/usr/include/glib-2.0/glib/gslist.h:
+
+/usr/include/glib-2.0/glib/gstring.h:
+
+/usr/include/glib-2.0/glib/gunicode.h:
+
+/usr/include/glib-2.0/glib/gkeyfile.h:
+
+/usr/include/glib-2.0/glib/gmappedfile.h:
+
+/usr/include/glib-2.0/glib/gmarkup.h:
+
+/usr/include/glib-2.0/glib/gmessages.h:
+
+/usr/include/glib-2.0/glib/gnode.h:
+
+/usr/include/glib-2.0/glib/goption.h:
+
+/usr/include/glib-2.0/glib/gpattern.h:
+
+/usr/include/glib-2.0/glib/gprimes.h:
+
+/usr/include/glib-2.0/glib/gqsort.h:
+
+/usr/include/glib-2.0/glib/gqueue.h:
+
+/usr/include/glib-2.0/glib/grand.h:
+
+/usr/include/glib-2.0/glib/grel.h:
+
+/usr/include/glib-2.0/glib/gregex.h:
+
+/usr/include/glib-2.0/glib/gscanner.h:
+
+/usr/include/glib-2.0/glib/gsequence.h:
+
+/usr/include/glib-2.0/glib/gshell.h:
+
+/usr/include/glib-2.0/glib/gspawn.h:
+
+/usr/include/glib-2.0/glib/gstrfuncs.h:
+
+/usr/include/glib-2.0/glib/gtestutils.h:
+
+/usr/include/glib-2.0/glib/gthreadpool.h:
+
+/usr/include/glib-2.0/glib/gtimer.h:
+
+/usr/include/glib-2.0/glib/gtree.h:
+
+/usr/include/glib-2.0/glib/gurifuncs.h:
+
+/usr/include/pango-1.0/pango/pango.h:
+
+/usr/include/pango-1.0/pango/pango-attributes.h:
+
+/usr/include/pango-1.0/pango/pango-font.h:
+
+/usr/include/pango-1.0/pango/pango-coverage.h:
+
+/usr/include/pango-1.0/pango/pango-types.h:
+
+/usr/include/glib-2.0/glib-object.h:
+
+/usr/include/glib-2.0/gobject/gboxed.h:
+
+/usr/include/glib-2.0/gobject/gtype.h:
+
+/usr/include/glib-2.0/gobject/genums.h:
+
+/usr/include/glib-2.0/gobject/gobject.h:
+
+/usr/include/glib-2.0/gobject/gvalue.h:
+
+/usr/include/glib-2.0/gobject/gparam.h:
+
+/usr/include/glib-2.0/gobject/gclosure.h:
+
+/usr/include/glib-2.0/gobject/gsignal.h:
+
+/usr/include/glib-2.0/gobject/gmarshal.h:
+
+/usr/include/glib-2.0/gobject/gparamspecs.h:
+
+/usr/include/glib-2.0/gobject/gsourceclosure.h:
+
+/usr/include/glib-2.0/gobject/gtypemodule.h:
+
+/usr/include/glib-2.0/gobject/gtypeplugin.h:
+
+/usr/include/glib-2.0/gobject/gvaluearray.h:
+
+/usr/include/glib-2.0/gobject/gvaluetypes.h:
+
+/usr/include/pango-1.0/pango/pango-gravity.h:
+
+/usr/include/pango-1.0/pango/pango-matrix.h:
+
+/usr/include/pango-1.0/pango/pango-script.h:
+
+/usr/include/pango-1.0/pango/pango-language.h:
+
+/usr/include/pango-1.0/pango/pango-break.h:
+
+/usr/include/pango-1.0/pango/pango-item.h:
+
+/usr/include/pango-1.0/pango/pango-context.h:
+
+/usr/include/pango-1.0/pango/pango-fontmap.h:
+
+/usr/include/pango-1.0/pango/pango-fontset.h:
+
+/usr/include/pango-1.0/pango/pango-engine.h:
+
+/usr/include/pango-1.0/pango/pango-glyph.h:
+
+/usr/include/pango-1.0/pango/pango-enum-types.h:
+
+/usr/include/pango-1.0/pango/pango-features.h:
+
+/usr/include/pango-1.0/pango/pango-glyph-item.h:
+
+/usr/include/pango-1.0/pango/pango-layout.h:
+
+/usr/include/pango-1.0/pango/pango-tabs.h:
+
+/usr/include/pango-1.0/pango/pango-renderer.h:
+
+/usr/include/pango-1.0/pango/pango-utils.h:
+
+/usr/lib/gtk-2.0/include/gdkconfig.h:
+
+/usr/include/gtk-2.0/gdk/gdkpixbuf.h:
+
+/usr/include/gtk-2.0/gdk/gdkrgb.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-features.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-core.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-transform.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-animation.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-io.h:
+
+/usr/include/glib-2.0/gmodule.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-loader.h:
+
+/usr/include/gtk-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h:
+
+/usr/include/pango-1.0/pango/pangocairo.h:
+
+/usr/include/gtk-2.0/gdk/gdkcursor.h:
+
+/usr/include/gtk-2.0/gdk/gdkdisplay.h:
+
+/usr/include/gtk-2.0/gdk/gdkevents.h:
+
+/usr/include/gtk-2.0/gdk/gdkdnd.h:
+
+/usr/include/gtk-2.0/gdk/gdkinput.h:
+
+/usr/include/gtk-2.0/gdk/gdkdrawable.h:
+
+/usr/include/gtk-2.0/gdk/gdkgc.h:
+
+/usr/include/gtk-2.0/gdk/gdkenumtypes.h:
+
+/usr/include/gtk-2.0/gdk/gdkfont.h:
+
+/usr/include/gtk-2.0/gdk/gdkimage.h:
+
+/usr/include/gtk-2.0/gdk/gdkkeys.h:
+
+/usr/include/gtk-2.0/gdk/gdkdisplaymanager.h:
+
+/usr/include/gtk-2.0/gdk/gdkpango.h:
+
+/usr/include/gtk-2.0/gdk/gdkpixmap.h:
+
+/usr/include/gtk-2.0/gdk/gdkproperty.h:
+
+/usr/include/gtk-2.0/gdk/gdkregion.h:
+
+/usr/include/gtk-2.0/gdk/gdkscreen.h:
+
+/usr/include/gtk-2.0/gdk/gdkselection.h:
+
+/usr/include/gtk-2.0/gdk/gdkspawn.h:
+
+/usr/include/gtk-2.0/gdk/gdkvisual.h:
+
+/usr/include/gtk-2.0/gdk/gdkwindow.h:
+
+/usr/include/gtk-2.0/gtk/gtkaboutdialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkdialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkwindow.h:
+
+/usr/include/gtk-2.0/gtk/gtkaccelgroup.h:
+
+/usr/include/gtk-2.0/gtk/gtkenums.h:
+
+/usr/include/gtk-2.0/gtk/gtkbin.h:
+
+/usr/include/gtk-2.0/gtk/gtkcontainer.h:
+
+/usr/include/gtk-2.0/gtk/gtkwidget.h:
+
+/usr/include/gtk-2.0/gtk/gtkobject.h:
+
+/usr/include/gtk-2.0/gtk/gtktypeutils.h:
+
+/usr/include/gtk-2.0/gtk/gtktypebuiltins.h:
+
+/usr/include/gtk-2.0/gtk/gtkdebug.h:
+
+/usr/include/gtk-2.0/gtk/gtkadjustment.h:
+
+/usr/include/gtk-2.0/gtk/gtkstyle.h:
+
+/usr/include/gtk-2.0/gtk/gtksettings.h:
+
+/usr/include/gtk-2.0/gtk/gtkrc.h:
+
+/usr/include/atk-1.0/atk/atkobject.h:
+
+/usr/include/atk-1.0/atk/atkstate.h:
+
+/usr/include/atk-1.0/atk/atkrelationtype.h:
+
+/usr/include/gtk-2.0/gtk/gtkaccellabel.h:
+
+/usr/include/gtk-2.0/gtk/gtklabel.h:
+
+/usr/include/gtk-2.0/gtk/gtkmisc.h:
+
+/usr/include/gtk-2.0/gtk/gtkmenu.h:
+
+/usr/include/gtk-2.0/gtk/gtkmenushell.h:
+
+/usr/include/gtk-2.0/gtk/gtkaccelmap.h:
+
+/usr/include/gtk-2.0/gtk/gtkaccessible.h:
+
+/usr/include/atk-1.0/atk/atk.h:
+
+/usr/include/atk-1.0/atk/atkaction.h:
+
+/usr/include/atk-1.0/atk/atkcomponent.h:
+
+/usr/include/atk-1.0/atk/atkutil.h:
+
+/usr/include/atk-1.0/atk/atkdocument.h:
+
+/usr/include/atk-1.0/atk/atkeditabletext.h:
+
+/usr/include/atk-1.0/atk/atktext.h:
+
+/usr/include/atk-1.0/atk/atkgobjectaccessible.h:
+
+/usr/include/atk-1.0/atk/atkhyperlink.h:
+
+/usr/include/atk-1.0/atk/atkhyperlinkimpl.h:
+
+/usr/include/atk-1.0/atk/atkhypertext.h:
+
+/usr/include/atk-1.0/atk/atkimage.h:
+
+/usr/include/atk-1.0/atk/atknoopobject.h:
+
+/usr/include/atk-1.0/atk/atknoopobjectfactory.h:
+
+/usr/include/atk-1.0/atk/atkobjectfactory.h:
+
+/usr/include/atk-1.0/atk/atkregistry.h:
+
+/usr/include/atk-1.0/atk/atkobjectfactory.h:
+
+/usr/include/atk-1.0/atk/atkrelation.h:
+
+/usr/include/atk-1.0/atk/atkrelationset.h:
+
+/usr/include/atk-1.0/atk/atkselection.h:
+
+/usr/include/atk-1.0/atk/atkstateset.h:
+
+/usr/include/atk-1.0/atk/atkstreamablecontent.h:
+
+/usr/include/atk-1.0/atk/atktable.h:
+
+/usr/include/atk-1.0/atk/atkmisc.h:
+
+/usr/include/atk-1.0/atk/atkvalue.h:
+
+/usr/include/gtk-2.0/gtk/gtkaction.h:
+
+/usr/include/gtk-2.0/gtk/gtkactiongroup.h:
+
+/usr/include/gtk-2.0/gtk/gtkitemfactory.h:
+
+/usr/include/gtk-2.0/gtk/gtkalignment.h:
+
+/usr/include/gtk-2.0/gtk/gtkarrow.h:
+
+/usr/include/gtk-2.0/gtk/gtkaspectframe.h:
+
+/usr/include/gtk-2.0/gtk/gtkframe.h:
+
+/usr/include/gtk-2.0/gtk/gtkassistant.h:
+
+/usr/include/gtk-2.0/gtk/gtkbbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkbindings.h:
+
+/usr/include/gtk-2.0/gtk/gtkbuildable.h:
+
+/usr/include/gtk-2.0/gtk/gtkbuilder.h:
+
+/usr/include/gtk-2.0/gtk/gtkbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkimage.h:
+
+/usr/include/gtk-2.0/gtk/gtkcalendar.h:
+
+/usr/include/gtk-2.0/gtk/gtksignal.h:
+
+/usr/include/gtk-2.0/gtk/gtkmarshal.h:
+
+/usr/include/gtk-2.0/gtk/gtkcelllayout.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrenderer.h:
+
+/usr/include/gtk-2.0/gtk/gtkcelleditable.h:
+
+/usr/include/gtk-2.0/gtk/gtktreeviewcolumn.h:
+
+/usr/include/gtk-2.0/gtk/gtktreemodel.h:
+
+/usr/include/gtk-2.0/gtk/gtktreesortable.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrendereraccel.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrenderertext.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrenderercombo.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrenderertext.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrendererpixbuf.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrendererprogress.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrendererspin.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellrenderertoggle.h:
+
+/usr/include/gtk-2.0/gtk/gtkcellview.h:
+
+/usr/include/gtk-2.0/gtk/gtkcheckbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtktogglebutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkcheckmenuitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkmenuitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkclipboard.h:
+
+/usr/include/gtk-2.0/gtk/gtkselection.h:
+
+/usr/include/gtk-2.0/gtk/gtktextiter.h:
+
+/usr/include/gtk-2.0/gtk/gtktexttag.h:
+
+/usr/include/gtk-2.0/gtk/gtktextchild.h:
+
+/usr/include/gtk-2.0/gtk/gtkclist.h:
+
+/usr/include/gtk-2.0/gtk/gtkcolorbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkcolorsel.h:
+
+/usr/include/gtk-2.0/gtk/gtkvbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkcolorseldialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkcombo.h:
+
+/usr/include/gtk-2.0/gtk/gtkcombobox.h:
+
+/usr/include/gtk-2.0/gtk/gtktreeview.h:
+
+/usr/include/gtk-2.0/gtk/gtkdnd.h:
+
+/usr/include/gtk-2.0/gtk/gtkentry.h:
+
+/usr/include/gtk-2.0/gtk/gtkeditable.h:
+
+/usr/include/gtk-2.0/gtk/gtkimcontext.h:
+
+/usr/include/gtk-2.0/gtk/gtkentrycompletion.h:
+
+/usr/include/gtk-2.0/gtk/gtkliststore.h:
+
+/usr/include/gtk-2.0/gtk/gtktreemodelfilter.h:
+
+/usr/include/gtk-2.0/gtk/gtkcomboboxentry.h:
+
+/usr/include/gtk-2.0/gtk/gtkctree.h:
+
+/usr/include/gtk-2.0/gtk/gtkcurve.h:
+
+/usr/include/gtk-2.0/gtk/gtkdrawingarea.h:
+
+/usr/include/gtk-2.0/gtk/gtkeventbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkexpander.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilesel.h:
+
+/usr/include/gtk-2.0/gtk/gtkfixed.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkhbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilechooser.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilefilter.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilechooserdialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilechooser.h:
+
+/usr/include/gtk-2.0/gtk/gtkfilechooserwidget.h:
+
+/usr/include/gtk-2.0/gtk/gtkfontbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkfontsel.h:
+
+/usr/include/gtk-2.0/gtk/gtkgamma.h:
+
+/usr/include/gtk-2.0/gtk/gtkgc.h:
+
+/usr/include/gtk-2.0/gtk/gtkhandlebox.h:
+
+/usr/include/gtk-2.0/gtk/gtkhbbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkhpaned.h:
+
+/usr/include/gtk-2.0/gtk/gtkpaned.h:
+
+/usr/include/gtk-2.0/gtk/gtkhruler.h:
+
+/usr/include/gtk-2.0/gtk/gtkruler.h:
+
+/usr/include/gtk-2.0/gtk/gtkhscale.h:
+
+/usr/include/gtk-2.0/gtk/gtkscale.h:
+
+/usr/include/gtk-2.0/gtk/gtkrange.h:
+
+/usr/include/gtk-2.0/gtk/gtkhscrollbar.h:
+
+/usr/include/gtk-2.0/gtk/gtkscrollbar.h:
+
+/usr/include/gtk-2.0/gtk/gtkhseparator.h:
+
+/usr/include/gtk-2.0/gtk/gtkseparator.h:
+
+/usr/include/gtk-2.0/gtk/gtkiconfactory.h:
+
+/usr/include/gtk-2.0/gtk/gtkicontheme.h:
+
+/usr/include/gtk-2.0/gtk/gtkiconview.h:
+
+/usr/include/gtk-2.0/gtk/gtktooltip.h:
+
+/usr/include/gtk-2.0/gtk/gtkwidget.h:
+
+/usr/include/gtk-2.0/gtk/gtkwindow.h:
+
+/usr/include/gtk-2.0/gtk/gtkimagemenuitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkimcontextsimple.h:
+
+/usr/include/gtk-2.0/gtk/gtkimmulticontext.h:
+
+/usr/include/gtk-2.0/gtk/gtkinputdialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkinvisible.h:
+
+/usr/include/gtk-2.0/gtk/gtklayout.h:
+
+/usr/include/gtk-2.0/gtk/gtklinkbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtklist.h:
+
+/usr/include/gtk-2.0/gtk/gtklistitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkmain.h:
+
+/usr/include/gtk-2.0/gtk/gtkmenubar.h:
+
+/usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkmenu.h:
+
+/usr/include/gtk-2.0/gtk/gtktoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtktoolitem.h:
+
+/usr/include/gtk-2.0/gtk/gtktooltips.h:
+
+/usr/include/gtk-2.0/gtk/gtkmessagedialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkmodules.h:
+
+/usr/include/gtk-2.0/gtk/gtknotebook.h:
+
+/usr/include/gtk-2.0/gtk/gtkoldeditable.h:
+
+/usr/include/gtk-2.0/gtk/gtkoptionmenu.h:
+
+/usr/include/gtk-2.0/gtk/gtkpixmap.h:
+
+/usr/include/gtk-2.0/gtk/gtkplug.h:
+
+/usr/include/gtk-2.0/gtk/gtksocket.h:
+
+/usr/include/gtk-2.0/gtk/gtkpreview.h:
+
+/usr/include/gtk-2.0/gtk/gtkprintoperation.h:
+
+/usr/include/gtk-2.0/gtk/gtkmain.h:
+
+/usr/include/gtk-2.0/gtk/gtkenums.h:
+
+/usr/include/gtk-2.0/gtk/gtkpagesetup.h:
+
+/usr/include/gtk-2.0/gtk/gtkpapersize.h:
+
+/usr/include/gtk-2.0/gtk/gtkprintsettings.h:
+
+/usr/include/gtk-2.0/gtk/gtkprintcontext.h:
+
+/usr/include/gtk-2.0/gtk/gtkprintoperationpreview.h:
+
+/usr/include/gtk-2.0/gtk/gtkprogress.h:
+
+/usr/include/gtk-2.0/gtk/gtkprogressbar.h:
+
+/usr/include/gtk-2.0/gtk/gtkradioaction.h:
+
+/usr/include/gtk-2.0/gtk/gtktoggleaction.h:
+
+/usr/include/gtk-2.0/gtk/gtkradiobutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkradiomenuitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkradiotoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtktoggletoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtktoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentaction.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentmanager.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentchooser.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentmanager.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentfilter.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentchooserdialog.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentchooser.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentchoosermenu.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentchooserwidget.h:
+
+/usr/include/gtk-2.0/gtk/gtkrecentfilter.h:
+
+/usr/include/gtk-2.0/gtk/gtkscalebutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkscrolledwindow.h:
+
+/usr/include/gtk-2.0/gtk/gtkvscrollbar.h:
+
+/usr/include/gtk-2.0/gtk/gtkviewport.h:
+
+/usr/include/gtk-2.0/gtk/gtkseparatormenuitem.h:
+
+/usr/include/gtk-2.0/gtk/gtkseparatortoolitem.h:
+
+/usr/include/gtk-2.0/gtk/gtksizegroup.h:
+
+/usr/include/gtk-2.0/gtk/gtkspinbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkstatusbar.h:
+
+/usr/include/gtk-2.0/gtk/gtkstatusicon.h:
+
+/usr/include/gtk-2.0/gtk/gtkstock.h:
+
+/usr/include/gtk-2.0/gtk/gtktable.h:
+
+/usr/include/gtk-2.0/gtk/gtktearoffmenuitem.h:
+
+/usr/include/gtk-2.0/gtk/gtktext.h:
+
+/usr/include/gtk-2.0/gtk/gtktextbuffer.h:
+
+/usr/include/gtk-2.0/gtk/gtktexttagtable.h:
+
+/usr/include/gtk-2.0/gtk/gtktextmark.h:
+
+/usr/include/gtk-2.0/gtk/gtktextbufferrichtext.h:
+
+/usr/include/gtk-2.0/gtk/gtktextview.h:
+
+/usr/include/gtk-2.0/gtk/gtktipsquery.h:
+
+/usr/include/gtk-2.0/gtk/gtktoggletoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtktoolbar.h:
+
+/usr/include/gtk-2.0/gtk/gtktoolbutton.h:
+
+/usr/include/gtk-2.0/gtk/gtktoolitem.h:
+
+/usr/include/gtk-2.0/gtk/gtktree.h:
+
+/usr/include/gtk-2.0/gtk/gtktreednd.h:
+
+/usr/include/gtk-2.0/gtk/gtktreeitem.h:
+
+/usr/include/gtk-2.0/gtk/gtktreemodelsort.h:
+
+/usr/include/gtk-2.0/gtk/gtktreeselection.h:
+
+/usr/include/gtk-2.0/gtk/gtktreestore.h:
+
+/usr/include/gtk-2.0/gtk/gtkuimanager.h:
+
+/usr/include/gtk-2.0/gtk/gtkvbbox.h:
+
+/usr/include/gtk-2.0/gtk/gtkversion.h:
+
+/usr/include/gtk-2.0/gtk/gtkvolumebutton.h:
+
+/usr/include/gtk-2.0/gtk/gtkvpaned.h:
+
+/usr/include/gtk-2.0/gtk/gtkvruler.h:
+
+/usr/include/gtk-2.0/gtk/gtkvscale.h:
+
+/usr/include/gtk-2.0/gtk/gtkvseparator.h:
+
+egg-datetime.h:

Added: trunk/libegg/.libs/libeggdatetime.a
==============================================================================
Binary file. No diff available.

Added: trunk/libegg/Makefile
==============================================================================
--- (empty file)
+++ trunk/libegg/Makefile	Sun May  4 20:22:27 2008
@@ -0,0 +1,544 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# libegg/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+srcdir = .
+top_srcdir = ..
+
+pkgdatadir = $(datadir)/seahorse
+pkglibdir = $(libdir)/seahorse
+pkgincludedir = $(includedir)/seahorse
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-linux-gnu
+host_triplet = i686-pc-linux-gnu
+subdir = libegg
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
+	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libeggdatetime_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libeggdatetime_la_OBJECTS = libeggdatetime_la-egg-datetime.lo
+libeggdatetime_la_OBJECTS = $(am_libeggdatetime_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libeggdatetime_la_SOURCES)
+DIST_SOURCES = $(libeggdatetime_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/sadam/pkg/seahorse/missing --run aclocal-1.9
+ALL_LINGUAS = 
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/sadam/pkg/seahorse/missing --run tar
+AR = ar
+AUTOCONF = ${SHELL} /home/sadam/pkg/seahorse/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/sadam/pkg/seahorse/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/sadam/pkg/seahorse/missing --run automake-1.9
+AWK = mawk
+CATALOGS = 
+CATOBJEXT = .gmo
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2 -g -O0 -DBONOBO_DISABLE_DEPRECATED -DDISABLE_DEPRECATED -Wall -Werror
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DATADIRNAME = share
+DBUS_BINDING_TOOL = /usr/bin/dbus-binding-tool
+DBUS_CFLAGS = -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+DBUS_LIBS = -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0  
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper 
+DOC_USER_FORMATS = 
+DSYMUTIL = 
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+ENABLE_SK_FALSE = #
+ENABLE_SK_TRUE = 
+EXEEXT = 
+F77 = 
+FFLAGS = 
+GCONF_SCHEMAS_INSTALL_FALSE = #
+GCONF_SCHEMAS_INSTALL_TRUE = 
+GCONF_SCHEMA_CONFIG_SOURCE = xml:merged:/etc/gconf/gconf.xml.defaults
+GCONF_SCHEMA_FILE_DIR = $(sysconfdir)/gconf/schemas
+GETTEXT_PACKAGE = seahorse
+GLIB_GENMARSHAL = /usr/bin/glib-genmarshal
+GMOFILES = 
+GMSGFMT = /usr/bin/msgfmt
+GNOME_KEYRING_CFLAGS = -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+GNOME_KEYRING_LIBS = -lgnome-keyring -lglib-2.0  
+GNUPG = /usr/bin/gpg
+GPGME_CONFIG = /usr/bin/gpgme-config
+GREP = /bin/grep
+GTK_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1  
+GTK_LIBS = -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+HAVE_GNOME_DOC_UTILS_FALSE = #
+HAVE_GNOME_DOC_UTILS_TRUE = 
+HELP_DIR = ${datadir}/gnome/help
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = 
+INTLTOOL_CAVES_RULE = %.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_DESKTOP_RULE = %.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_DIRECTORY_RULE = %.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_EXTRACT = $(top_builddir)/intltool-extract
+INTLTOOL_KBD_RULE = %.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_KEYS_RULE = %.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_MERGE = $(top_builddir)/intltool-merge
+INTLTOOL_OAF_RULE = %.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@
+INTLTOOL_PERL = /usr/bin/perl
+INTLTOOL_POLICY_RULE = %.policy:    %.policy.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_PONG_RULE = %.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_PROP_RULE = %.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SCHEMAS_RULE = %.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SERVER_RULE = %.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SERVICE_RULE = %.service: %.service.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SHEET_RULE = %.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_SOUNDLIST_RULE = %.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_THEME_RULE = %.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_UI_RULE = %.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_UPDATE = $(top_builddir)/intltool-update
+INTLTOOL_XAM_RULE = %.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+INTLTOOL_XML_NOMERGE_RULE = %.xml:       %.xml.in       $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@
+INTLTOOL_XML_RULE = %.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+LDFLAGS = 
+LIBCRYPTUI_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0   -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+LIBCRYPTUI_LIBS = -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lgconf-2 -lglib-2.0   -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0  
+LIBCRYPTUI_LT_RELEASE = 0:0:0
+LIBCRYPTUI_MAJOR = 0.0
+LIBNOTIFY_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1  
+LIBNOTIFY_LIBS = -lnotify -lgtk-x11-2.0 -ldbus-glib-1 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -ldl -ldbus-1 -lgobject-2.0 -lglib-2.0  
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIBOBJS = 
+MAINT = 
+MAINTAINER_MODE_FALSE = #
+MAINTAINER_MODE_TRUE = 
+MAKEINFO = ${SHELL} /home/sadam/pkg/seahorse/missing --run makeinfo
+MKINSTALLDIRS = ./mkinstalldirs
+MSGFMT = /usr/bin/msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/bin/msgmerge
+NMEDIT = 
+OBJEXT = o
+OMF_DIR = ${datadir}/omf
+OS_WIN32_FALSE = 
+OS_WIN32_TRUE = #
+PACKAGE = seahorse
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = seahorse
+PACKAGE_STRING = seahorse 2.23.0
+PACKAGE_TARNAME = seahorse
+PACKAGE_VERSION = 2.23.0
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+PLATFORM_WIN32_FALSE = 
+PLATFORM_WIN32_TRUE = #
+PLUGIN_LIBTOOL_FLAGS = -module -avoid-version
+POFILES = 
+POSUB = po
+PO_IN_DATADIR_FALSE = 
+PO_IN_DATADIR_TRUE = 
+RANLIB = ranlib
+SEAHORSE_CFLAGS = -DORBIT2=1 -pthread -I/usr/include/libglade-2.0 -I/usr/include/gtk-2.0 -I/usr/include/libxml2 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1 -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/gnome-vfs-2.0/include    -O0 -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -D_REENTRANT -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 
 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/pixman-1  
+SEAHORSE_LIBS = -pthread -lglade-2.0 -lxml2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgnomevfs-2 -lgconf-2 -lgthread-2.0 -lrt -lgmodule-2.0 -ldl -lgobject-2.0 -lglib-2.0   -lgpgme -lgpg-error -lldap -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   -lgnome-keyring -lglib-2.0   -lavahi-common -lavahi-client -lavahi-glib -lglib-2.0   -ldbus-glib-1 -ldbus-1 -lgobject-2.0 -lglib-2.0   -lnotify -lgtk-x11-2.0 -ldbus-glib-1 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgmodule-2.0 -ldl -ldbus-1 -lgobject-2.0 -lglib-2.0  
+SED = /bin/sed
+SET_MAKE = 
+SHARING_CFLAGS = -D_REENTRANT -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+SHARING_LIBS = -lavahi-common -lavahi-client -lavahi-glib -lglib-2.0  
+SHELL = /bin/bash
+SOUP_CFLAGS = -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+SOUP_LIBS = -lsoup-2.4 -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+SSH_KEYGEN_PATH = /usr/bin/ssh-keygen
+SSH_PATH = /usr/bin/ssh
+STRIP = strip
+UPDATE_MIME_DATABASE_FALSE = #
+UPDATE_MIME_DATABASE_TRUE = 
+USE_NLS = yes
+VERSION = 2.23.0
+WITH_HKP_FALSE = #
+WITH_HKP_TRUE = 
+WITH_KEYSERVER_FALSE = #
+WITH_KEYSERVER_TRUE = 
+WITH_LDAP_FALSE = #
+WITH_LDAP_TRUE = 
+WITH_SHARING_FALSE = #
+WITH_SHARING_TRUE = 
+WITH_SSH_FALSE = #
+WITH_SSH_TRUE = 
+WITH_TESTS_FALSE = 
+WITH_TESTS_TRUE = #
+XGETTEXT = /usr/bin/xgettext
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-linux-gnu
+build_alias = 
+build_cpu = i686
+build_os = linux-gnu
+build_vendor = pc
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = i686-pc-linux-gnu
+host_alias = 
+host_cpu = i686
+host_os = linux-gnu
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = /home/sadam/pkg/seahorse/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target_alias = 
+INCLUDES = -DGTK_DISABLE_DEPRECATED \
+	   -DGDK_DISABLE_DEPRECATED \
+	   -DG_DISABLE_DEPRECATED \
+	   -DGETTEXT_PACKAGE=NULL
+
+noinst_LTLIBRARIES = libeggdatetime.la
+libeggdatetime_la_LIBADD = $(GTK_LIBS)
+libeggdatetime_la_CFLAGS = $(GTK_CFLAGS)
+libeggdatetime_la_SOURCES = egg-datetime.h egg-datetime.c
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libegg/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libegg/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libeggdatetime.la: $(libeggdatetime_la_OBJECTS) $(libeggdatetime_la_DEPENDENCIES) 
+	$(LINK)  $(libeggdatetime_la_LDFLAGS) $(libeggdatetime_la_OBJECTS) $(libeggdatetime_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+include ./$(DEPDIR)/libeggdatetime_la-egg-datetime.Plo
+
+.c.o:
+	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(COMPILE) -c $<
+
+.c.obj:
+	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+#	source='$<' object='$@' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+#	source='$<' object='$@' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(LTCOMPILE) -c -o $@ $<
+
+libeggdatetime_la-egg-datetime.lo: egg-datetime.c
+	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeggdatetime_la_CFLAGS) $(CFLAGS) -MT libeggdatetime_la-egg-datetime.lo -MD -MP -MF "$(DEPDIR)/libeggdatetime_la-egg-datetime.Tpo" -c -o libeggdatetime_la-egg-datetime.lo `test -f 'egg-datetime.c' || echo '$(srcdir)/'`egg-datetime.c; \
+	then mv -f "$(DEPDIR)/libeggdatetime_la-egg-datetime.Tpo" "$(DEPDIR)/libeggdatetime_la-egg-datetime.Plo"; else rm -f "$(DEPDIR)/libeggdatetime_la-egg-datetime.Tpo"; exit 1; fi
+#	source='egg-datetime.c' object='libeggdatetime_la-egg-datetime.lo' libtool=yes \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeggdatetime_la_CFLAGS) $(CFLAGS) -c -o libeggdatetime_la-egg-datetime.lo `test -f 'egg-datetime.c' || echo '$(srcdir)/'`egg-datetime.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: trunk/libegg/Makefile.am
==============================================================================
--- (empty file)
+++ trunk/libegg/Makefile.am	Sun May  4 20:22:27 2008
@@ -0,0 +1,10 @@
+INCLUDES = -DGTK_DISABLE_DEPRECATED \
+	   -DGDK_DISABLE_DEPRECATED \
+	   -DG_DISABLE_DEPRECATED \
+	   -DGETTEXT_PACKAGE=NULL
+
+noinst_LTLIBRARIES = libeggdatetime.la
+
+libeggdatetime_la_LIBADD = $(GTK_LIBS)
+libeggdatetime_la_CFLAGS = $(GTK_CFLAGS)
+libeggdatetime_la_SOURCES = egg-datetime.h egg-datetime.c

Added: trunk/libegg/Makefile.in
==============================================================================
--- (empty file)
+++ trunk/libegg/Makefile.in	Sun May  4 20:22:27 2008
@@ -0,0 +1,544 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = libegg
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gnome-doc-utils.m4 \
+	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libeggdatetime_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libeggdatetime_la_OBJECTS = libeggdatetime_la-egg-datetime.lo
+libeggdatetime_la_OBJECTS = $(am_libeggdatetime_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libeggdatetime_la_SOURCES)
+DIST_SOURCES = $(libeggdatetime_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_BINDING_TOOL = @DBUS_BINDING_TOOL@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_LIBS = @DBUS_LIBS@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
+DOC_USER_FORMATS = @DOC_USER_FORMATS@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_SK_FALSE = @ENABLE_SK_FALSE@
+ENABLE_SK_TRUE = @ENABLE_SK_TRUE@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
+GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
+GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
+GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GNOME_KEYRING_CFLAGS = @GNOME_KEYRING_CFLAGS@
+GNOME_KEYRING_LIBS = @GNOME_KEYRING_LIBS@
+GNUPG = @GNUPG@
+GPGME_CONFIG = @GPGME_CONFIG@
+GREP = @GREP@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HAVE_GNOME_DOC_UTILS_FALSE = @HAVE_GNOME_DOC_UTILS_FALSE@
+HAVE_GNOME_DOC_UTILS_TRUE = @HAVE_GNOME_DOC_UTILS_TRUE@
+HELP_DIR = @HELP_DIR@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBCRYPTUI_CFLAGS = @LIBCRYPTUI_CFLAGS@
+LIBCRYPTUI_LIBS = @LIBCRYPTUI_LIBS@
+LIBCRYPTUI_LT_RELEASE = @LIBCRYPTUI_LT_RELEASE@
+LIBCRYPTUI_MAJOR = @LIBCRYPTUI_MAJOR@
+LIBNOTIFY_CFLAGS = @LIBNOTIFY_CFLAGS@
+LIBNOTIFY_LIBS = @LIBNOTIFY_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+OMF_DIR = @OMF_DIR@
+OS_WIN32_FALSE = @OS_WIN32_FALSE@
+OS_WIN32_TRUE = @OS_WIN32_TRUE@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLATFORM_WIN32_FALSE = @PLATFORM_WIN32_FALSE@
+PLATFORM_WIN32_TRUE = @PLATFORM_WIN32_TRUE@
+PLUGIN_LIBTOOL_FLAGS = @PLUGIN_LIBTOOL_FLAGS@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
+SEAHORSE_CFLAGS = @SEAHORSE_CFLAGS@
+SEAHORSE_LIBS = @SEAHORSE_LIBS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHARING_CFLAGS = @SHARING_CFLAGS@
+SHARING_LIBS = @SHARING_LIBS@
+SHELL = @SHELL@
+SOUP_CFLAGS = @SOUP_CFLAGS@
+SOUP_LIBS = @SOUP_LIBS@
+SSH_KEYGEN_PATH = @SSH_KEYGEN_PATH@
+SSH_PATH = @SSH_PATH@
+STRIP = @STRIP@
+UPDATE_MIME_DATABASE_FALSE = @UPDATE_MIME_DATABASE_FALSE@
+UPDATE_MIME_DATABASE_TRUE = @UPDATE_MIME_DATABASE_TRUE@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WITH_HKP_FALSE = @WITH_HKP_FALSE@
+WITH_HKP_TRUE = @WITH_HKP_TRUE@
+WITH_KEYSERVER_FALSE = @WITH_KEYSERVER_FALSE@
+WITH_KEYSERVER_TRUE = @WITH_KEYSERVER_TRUE@
+WITH_LDAP_FALSE = @WITH_LDAP_FALSE@
+WITH_LDAP_TRUE = @WITH_LDAP_TRUE@
+WITH_SHARING_FALSE = @WITH_SHARING_FALSE@
+WITH_SHARING_TRUE = @WITH_SHARING_TRUE@
+WITH_SSH_FALSE = @WITH_SSH_FALSE@
+WITH_SSH_TRUE = @WITH_SSH_TRUE@
+WITH_TESTS_FALSE = @WITH_TESTS_FALSE@
+WITH_TESTS_TRUE = @WITH_TESTS_TRUE@
+XGETTEXT = @XGETTEXT@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+INCLUDES = -DGTK_DISABLE_DEPRECATED \
+	   -DGDK_DISABLE_DEPRECATED \
+	   -DG_DISABLE_DEPRECATED \
+	   -DGETTEXT_PACKAGE=NULL
+
+noinst_LTLIBRARIES = libeggdatetime.la
+libeggdatetime_la_LIBADD = $(GTK_LIBS)
+libeggdatetime_la_CFLAGS = $(GTK_CFLAGS)
+libeggdatetime_la_SOURCES = egg-datetime.h egg-datetime.c
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  libegg/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  libegg/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libeggdatetime.la: $(libeggdatetime_la_OBJECTS) $(libeggdatetime_la_DEPENDENCIES) 
+	$(LINK)  $(libeggdatetime_la_LDFLAGS) $(libeggdatetime_la_OBJECTS) $(libeggdatetime_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ AMDEP_TRUE@@am__include@ @am__quote  /$(DEPDIR)/libeggdatetime_la-egg-datetime Plo am__quote@
+
+.c.o:
+ am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+libeggdatetime_la-egg-datetime.lo: egg-datetime.c
+ am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeggdatetime_la_CFLAGS) $(CFLAGS) -MT libeggdatetime_la-egg-datetime.lo -MD -MP -MF "$(DEPDIR)/libeggdatetime_la-egg-datetime.Tpo" -c -o libeggdatetime_la-egg-datetime.lo `test -f 'egg-datetime.c' || echo '$(srcdir)/'`egg-datetime.c; \
+ am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/libeggdatetime_la-egg-datetime.Tpo" "$(DEPDIR)/libeggdatetime_la-egg-datetime.Plo"; else rm -f "$(DEPDIR)/libeggdatetime_la-egg-datetime.Tpo"; exit 1; fi
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-datetime.c' object='libeggdatetime_la-egg-datetime.lo' libtool=yes @AMDEPBACKSLASH@
+ AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libeggdatetime_la_CFLAGS) $(CFLAGS) -c -o libeggdatetime_la-egg-datetime.lo `test -f 'egg-datetime.c' || echo '$(srcdir)/'`egg-datetime.c
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: trunk/libegg/egg-datetime.c
==============================================================================
--- (empty file)
+++ trunk/libegg/egg-datetime.c	Sun May  4 20:22:27 2008
@@ -0,0 +1,2325 @@
+/*
+ * Copyright (C) 2002-2005  Sebastian Rittau <srittau jroger in-berlin de>
+ * $Id$
+ *
+ * Based on GnomeDateEdit by Miguel de Icaza.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with the Gnome Library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <libintl.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include "egg-datetime.h"
+
+#ifdef G_OS_WIN32
+/* The gmtime() in Microsoft's C library *is* thread-safe. It has no gmtime_r(). */
+
+static struct tm *
+gmtime_r (const time_t *timep, struct tm *result)
+{
+  struct tm *tmp = gmtime (timep);
+
+  if (tmp == NULL)
+    return NULL;
+
+  memcpy (result, tmp, sizeof (struct tm));
+
+  return result;
+}
+
+/* Ditto for localtime() and localtime_r(). */
+
+static struct tm *
+localtime_r (const time_t *timep, struct tm *result)
+{
+  struct tm *tmp = localtime (timep);
+
+  if (tmp == NULL)
+    return NULL;
+
+  memcpy (result, tmp, sizeof (struct tm));
+
+  return result;
+}
+
+#endif
+
+#ifndef _
+#define _(x) (x)
+#endif
+
+
+/* TODO:
+ *  o "now" button in calendar popup?
+ *  o timezone support
+ *  o Implement time list as a popup a la Evo, or time as a spin button?
+ *  o In lazy mode: choose a different way to mark an invalid date instead
+ *    of just blanking the widget.
+ */
+
+/* FIXME:
+ *  o limit GtkCalendar to clamp times
+ */
+
+
+/* from libgnomeui */
+static void
+_add_atk_name_desc (GtkWidget *widget, gchar *name, gchar *desc)
+{
+   AtkObject *aobj;
+
+   g_return_if_fail (GTK_IS_WIDGET (widget));
+
+   aobj = gtk_widget_get_accessible (widget);
+
+   if (name)
+      atk_object_set_name (aobj, name);
+   if (desc)
+      atk_object_set_description (aobj, desc);
+}
+
+static void
+_add_atk_relation (GtkWidget *widget1, GtkWidget *widget2,
+         AtkRelationType w1_to_w2, AtkRelationType w2_to_w1)
+{
+   AtkObject      *atk_widget1;
+   AtkObject      *atk_widget2;
+   AtkRelationSet *relation_set;
+   AtkRelation    *relation;
+   AtkObject      *targets[1];
+
+   atk_widget1 = gtk_widget_get_accessible (widget1);
+   atk_widget2 = gtk_widget_get_accessible (widget2);
+
+   /* Create the widget1 -> widget2 relation */
+   relation_set = atk_object_ref_relation_set (atk_widget1);
+   targets[0] = atk_widget2;
+   relation = atk_relation_new (targets, 1, w1_to_w2);
+   atk_relation_set_add (relation_set, relation);
+   g_object_unref (relation);
+
+   /* Create the widget2 -> widget1 relation */
+   relation_set = atk_object_ref_relation_set (atk_widget2);
+   targets[0] = atk_widget1;
+   relation = atk_relation_new (targets, 1, w2_to_w1);
+   atk_relation_set_add (relation_set, relation);
+   g_object_unref (relation);
+}
+
+/*
+ * Time List Declarations
+ */
+
+#define TIMELIST(x) GTK_SCROLLED_WINDOW(x)
+#define Timelist GtkScrolledWindow
+
+static GtkWidget *timelist_new (void);
+static void timelist_set_list (Timelist *timelist, guint8 minhour, guint8 minminute, guint8 maxhour, guint8 maxminute);
+static void timelist_set_time (Timelist *timelist, guint8 hour, guint8 minute);
+static gboolean timelist_get_time (Timelist *timelist, guint8 *hour, guint8 *minute);
+static void timelist_clamp (Timelist *timelist, guint8 minhour, guint8 minminute, guint8 maxhour, guint8 maxminute);
+static void timelist_set_selection_callback (Timelist *timelist, void (*cb)(void), gpointer data);
+
+/*
+ * Class and Object Handling
+ */
+
+struct _EggDateTimePrivate
+{
+   /* Children */
+
+   GtkWidget *date_box;
+   GtkWidget *date_entry;
+   GtkWidget *date_button;
+   GtkWidget *time_box;
+   GtkWidget *time_entry;
+   GtkWidget *time_button;
+   GtkWidget *cal_popup;
+   GtkWidget *calendar;
+   GtkWidget *time_popup;
+   GtkWidget *timelist;
+
+   /* Flags */
+
+   EggDateTimeDisplayMode display_mode;
+   gboolean lazy;
+   gboolean week_start_monday;
+
+   /* Current Date/Time */
+
+   gboolean   date_valid;
+   GDateYear  year;
+   GDateMonth month;
+   GDateDay   day;
+   gboolean   time_valid;
+   guint8     hour;
+   guint8     minute;
+   guint8     second;
+
+   /* Clamp Values */
+
+   guint16 clamp_minyear,   clamp_maxyear;
+   guint8  clamp_minmonth,  clamp_maxmonth;
+   guint8  clamp_minday,    clamp_maxday;
+   guint8  clamp_minhour,   clamp_maxhour;
+   guint8  clamp_minminute, clamp_maxminute;
+   guint8  clamp_minsecond, clamp_maxsecond;
+};
+
+enum {
+   SIGNAL_DATE_CHANGED,
+   SIGNAL_TIME_CHANGED,
+   SIGNAL_LAST
+};
+
+enum {
+   ARG_DISPLAY_MODE = 1,
+   ARG_LAZY,
+   ARG_YEAR,
+   ARG_MONTH,
+   ARG_DAY,
+   ARG_HOUR,
+   ARG_MINUTE,
+   ARG_SECOND,
+   ARG_CLAMP_MINYEAR,
+   ARG_CLAMP_MINMONTH,
+   ARG_CLAMP_MINDAY,
+   ARG_CLAMP_MINHOUR,
+   ARG_CLAMP_MINMINUTE,
+   ARG_CLAMP_MINSECOND,
+   ARG_CLAMP_MAXYEAR,
+   ARG_CLAMP_MAXMONTH,
+   ARG_CLAMP_MAXDAY,
+   ARG_CLAMP_MAXHOUR,
+   ARG_CLAMP_MAXMINUTE,
+   ARG_CLAMP_MAXSECOND
+};
+
+
+static gint egg_datetime_signals [SIGNAL_LAST] = { 0 };
+
+
+static void  egg_datetime_class_init   (EggDateTimeClass *klass);
+static void  egg_datetime_init      (EggDateTime      *edt);
+static void  egg_datetime_set_property (GObject    *object,
+                   guint          property_id,
+                   const GValue     *value,
+                   GParamSpec    *pspec);
+static void  egg_datetime_get_property (GObject    *object,
+                   guint          property_id,
+                   GValue        *value,
+                   GParamSpec    *pspec);
+
+static void  egg_datetime_destroy      (GtkObject *object);
+static void  egg_datetime_finalize     (GObject    *object);
+
+static gchar   *get_time_string     (guint8 hour, guint8 minute, guint8 second);
+
+static gboolean    date_focus_out         (EggDateTime *edt,   GtkEntry *entry);
+static gboolean    time_focus_out         (EggDateTime *edt,   GtkEntry *entry);
+static void  date_arrow_toggled     (EggDateTime *edt,   GtkToggleButton *button);
+static void  time_arrow_toggled     (EggDateTime *edt,   GtkToggleButton *button);
+static void  cal_popup_changed      (EggDateTime *edt,   GtkCalendar *calendar);
+static void  cal_popup_double_click    (EggDateTime *edt,   GtkCalendar *calendar);
+static gboolean    cal_popup_key_pressed     (EggDateTime *edt,   GdkEventKey *event, GtkWidget *widget);
+static gboolean    cal_popup_button_pressed  (EggDateTime *edt,   GdkEventButton *event, GtkWidget *widget);
+static gboolean    cal_popup_closed    (EggDateTime *edt,   GtkWindow *popup);
+static void  cal_popup_hide         (EggDateTime *edt);
+static void  time_popup_changed     (EggDateTime *edt,   Timelist *timelist);
+static gboolean    time_popup_key_pressed    (EggDateTime *edt,   GdkEventKey *event, GtkWidget *widget);
+static gboolean    time_popup_button_pressed (EggDateTime *edt,   GdkEventButton *event, GtkWidget *widget);
+static gboolean    time_popup_closed      (EggDateTime *edt,   GtkWindow *popup);
+static void  time_popup_hide     (EggDateTime *edt);
+
+static void  apply_display_mode     (EggDateTime *edt);
+static void  clamp_time_labels      (EggDateTime *edt);
+static void  parse_date       (EggDateTime *edt);
+static void  parse_time       (EggDateTime *edt);
+static void  normalize_date         (EggDateTime *edt);
+static void  normalize_time         (EggDateTime *edt);
+static void  parse_and_update_date     (EggDateTime *edt);
+static void  parse_and_update_time     (EggDateTime *edt);
+static void  update_date_label      (EggDateTime *edt);
+static void  update_time_label      (EggDateTime *edt);
+
+
+static GtkHBoxClass *parent_class = NULL;
+
+
+GtkType
+egg_datetime_get_type (void)
+{
+   static GtkType datetime_type = 0;
+
+   if (!datetime_type) {
+      static const GTypeInfo datetime_info = {
+         sizeof (EggDateTimeClass),
+         NULL,    /* base_init */
+         NULL,    /* base_finalize */
+         (GClassInitFunc) egg_datetime_class_init,
+         NULL,    /* class_finalize */
+         NULL,    /* class_data */
+         sizeof (EggDateTime),
+         0,    /* n_preallocs */
+         (GInstanceInitFunc) egg_datetime_init
+      };
+
+      datetime_type = g_type_register_static (GTK_TYPE_HBOX, "EggDateTime", &datetime_info, 0);
+   }
+
+   return datetime_type;
+}
+
+static void
+egg_datetime_class_init (EggDateTimeClass *klass)
+{
+   GObjectClass *o_class;
+   GtkObjectClass *go_class;
+   GParamSpec *pspec;
+
+   parent_class = g_type_class_peek_parent (klass);
+
+   o_class  = (GObjectClass *)   klass;
+   go_class = (GtkObjectClass *) klass;
+
+   o_class->finalize     = egg_datetime_finalize;
+        o_class->set_property = egg_datetime_set_property;
+        o_class->get_property = egg_datetime_get_property;
+   go_class->destroy     = egg_datetime_destroy;
+
+   /* Properties */
+
+   pspec = g_param_spec_uint ("display-flags",
+               _("Display flags"),
+               _("Displayed date and/or time properties"),
+               0, G_MAXUINT, EGG_DATETIME_DISPLAY_DATE,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_DISPLAY_MODE, pspec);
+   pspec = g_param_spec_boolean ("lazy",
+                  _("Lazy mode"),
+                  _("Lazy mode doesn't normalize entered date and time values"),
+                  FALSE,
+                  G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_LAZY, pspec);
+   pspec = g_param_spec_uint ("year",
+               _("Year"),
+               _("Displayed year"),
+               1, 9999, 2000,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_YEAR, pspec);
+   pspec = g_param_spec_uint ("month",
+               _("Month"),
+               _("Displayed month"),
+               G_DATE_JANUARY, G_DATE_DECEMBER, G_DATE_JANUARY,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_MONTH, pspec);
+   pspec = g_param_spec_uint ("day",
+               _("Day"),
+               _("Displayed day of month"),
+               1, 31, 1,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_DAY, pspec);
+   pspec = g_param_spec_uint ("hour",
+               _("Hour"),
+               _("Displayed hour"),
+               0, 23, 0,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_HOUR, pspec);
+   pspec = g_param_spec_uint ("minute",
+               _("Minute"),
+               _("Displayed minute"),
+               0, 59, 0,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_MINUTE, pspec);
+   pspec = g_param_spec_uint ("second",
+               _("Second"),
+               _("Displayed second"),
+               0, 59, 0,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_SECOND, pspec);
+   pspec = g_param_spec_uint ("clamp-minyear",
+               _("Lower limit year"),
+               _("Year part of the lower date limit"),
+               1, 9999, 1,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MINYEAR, pspec);
+   pspec = g_param_spec_uint ("clamp-maxyear",
+               _("Upper limit year"),
+               _("Year part of the upper date limit"),
+               1, 9999, 9999,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MAXYEAR, pspec);
+   pspec = g_param_spec_uint ("clamp-minmonth",
+               _("Lower limit month"),
+               _("Month part of the lower date limit"),
+               G_DATE_JANUARY, G_DATE_DECEMBER, G_DATE_JANUARY,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MINMONTH, pspec);
+   pspec = g_param_spec_uint ("clamp-maxmonth",
+               _("Upper limit month"),
+               _("Month part of the upper date limit"),
+               G_DATE_JANUARY, G_DATE_DECEMBER, G_DATE_DECEMBER,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MAXMONTH, pspec);
+   pspec = g_param_spec_uint ("clamp-minday",
+               _("Lower limit day"),
+               _("Day of month part of the lower date limit"),
+               1, 31, 1,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MINDAY, pspec);
+   pspec = g_param_spec_uint ("clamp-maxday",
+               _("Upper limit day"),
+               _("Day of month part of the upper date limit"),
+               1, 31, 31,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MAXDAY, pspec);
+   pspec = g_param_spec_uint ("clamp-minhour",
+               _("Lower limit hour"),
+               _("Hour part of the lower time limit"),
+               0, 23, 0,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MINHOUR, pspec);
+   pspec = g_param_spec_uint ("clamp-maxhour",
+               _("Upper limit hour"),
+               _("Hour part of the upper time limit"),
+               0, 23, 23,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MAXHOUR, pspec);
+   pspec = g_param_spec_uint ("clamp-minminute",
+               _("Lower limit minute"),
+               _("Minute part of the lower time limit"),
+               0, 59, 0,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MINMINUTE, pspec);
+   pspec = g_param_spec_uint ("clamp-maxminute",
+               _("Upper limit minute"),
+               _("Minute part of the upper time limit"),
+               0, 59, 59,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MAXMINUTE, pspec);
+   pspec = g_param_spec_uint ("clamp-minsecond",
+               _("Lower limit second"),
+               _("Second part of the lower time limit"),
+               0, 59, 0,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MINSECOND, pspec);
+   pspec = g_param_spec_uint ("clamp-maxsecond",
+               _("Upper limit second"),
+               _("Second part of the upper time limit"),
+               0, 59, 59,
+               G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+   g_object_class_install_property (o_class, ARG_CLAMP_MAXSECOND, pspec);
+
+   /* Signals */
+
+   egg_datetime_signals [SIGNAL_DATE_CHANGED] =
+      g_signal_new ("date-changed",
+               G_TYPE_FROM_CLASS (klass),
+               G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+               G_STRUCT_OFFSET (EggDateTimeClass, date_changed),
+               NULL, NULL,
+               g_cclosure_marshal_VOID__VOID,
+               G_TYPE_NONE, 0);
+
+   egg_datetime_signals [SIGNAL_TIME_CHANGED] =
+      g_signal_new ("time-changed",
+               G_TYPE_FROM_CLASS (klass),
+               G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+               G_STRUCT_OFFSET (EggDateTimeClass, time_changed),
+               NULL, NULL,
+               g_cclosure_marshal_VOID__VOID,
+               G_TYPE_NONE, 0);
+}
+
+static void
+egg_datetime_init (EggDateTime *edt)
+{
+   EggDateTimePrivate *priv;
+   GtkWidget *arrow;
+   GtkCalendarDisplayOptions cal_options;
+   const gchar *week_start;
+
+   priv = g_new0 (EggDateTimePrivate, 1);
+   edt->priv = priv;
+
+   /* Translate to calendar:week_start:1 if you want Monday to be the
+    * first day of the week; otherwise translate to calendar:week_start:0.
+    * Do *not* translate it to anything else, if it isn't calendar:week_start:1
+    * or calendar:week_start:0 it will not work.
+    */
+   week_start = _("calendar:week_start:0");
+   if (strcmp (week_start, "calendar:week_start:1") == 0)
+      priv->week_start_monday = TRUE;
+   else if (strcmp (week_start, "calendar:week_start:0") == 0)
+      priv->week_start_monday = FALSE;
+   else
+      g_warning ("Whoever translated calendar:week_start:0 did so wrongly.\n");
+
+   priv->date_valid = FALSE;
+   priv->time_valid = FALSE;
+
+   /* Initialize Widgets */
+
+   gtk_box_set_spacing (GTK_BOX (edt), 4);
+
+   /* Date Widgets */
+
+   priv->date_box = gtk_hbox_new (FALSE, 0);
+   gtk_box_pack_start (GTK_BOX (edt), priv->date_box, TRUE, TRUE, 0);
+
+   priv->date_entry = gtk_entry_new ();
+   gtk_entry_set_width_chars (GTK_ENTRY (priv->date_entry), 12);
+   _add_atk_name_desc (priv->date_entry, _("Date"), _("Enter the date directly"));
+   g_signal_connect_swapped (G_OBJECT (priv->date_entry), "focus-out-event",
+              G_CALLBACK (date_focus_out), edt);
+   gtk_widget_show (priv->date_entry);
+   gtk_box_pack_start (GTK_BOX (priv->date_box), priv->date_entry, TRUE, TRUE, 0);
+
+   priv->date_button = gtk_toggle_button_new ();
+   _add_atk_name_desc (priv->date_button, _("Select Date"), _("Select the date from a calendar"));
+   gtk_box_pack_start (GTK_BOX (priv->date_box), priv->date_button, FALSE, FALSE, 0);
+   arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+   gtk_container_add (GTK_CONTAINER (priv->date_button), arrow);
+   gtk_widget_show (arrow);
+   g_signal_connect_swapped (G_OBJECT (priv->date_button), "toggled",
+              G_CALLBACK (date_arrow_toggled), edt);
+
+   _add_atk_relation (priv->date_button, priv->date_entry,
+            ATK_RELATION_CONTROLLER_FOR, ATK_RELATION_CONTROLLED_BY);
+
+   /* Time Widgets */
+
+   priv->time_box = gtk_hbox_new (FALSE, 0);
+   gtk_box_pack_start (GTK_BOX (edt), priv->time_box, TRUE, TRUE, 0);
+
+   priv->time_entry = gtk_entry_new ();
+   gtk_entry_set_width_chars (GTK_ENTRY (priv->time_entry), 10);
+   _add_atk_name_desc (priv->time_entry, _("Time"), _("Enter the time directly"));
+   g_signal_connect_swapped (G_OBJECT (priv->time_entry), "focus-out-event",
+              G_CALLBACK (time_focus_out), edt);
+   gtk_widget_show (priv->time_entry);
+   gtk_box_pack_start (GTK_BOX (priv->time_box), priv->time_entry, TRUE, TRUE, 0);
+
+   priv->time_button = gtk_toggle_button_new ();
+   _add_atk_name_desc (priv->date_button, _("Select Time"), _("Select the time from a list"));
+   gtk_box_pack_start (GTK_BOX (priv->time_box), priv->time_button, FALSE, FALSE, 0);
+   arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_OUT);
+   gtk_container_add (GTK_CONTAINER (priv->time_button), arrow);
+   gtk_widget_show (arrow);
+   g_signal_connect_swapped (G_OBJECT (priv->time_button), "toggled",
+              G_CALLBACK (time_arrow_toggled), edt);
+
+   _add_atk_relation (priv->time_button, priv->time_entry,
+            ATK_RELATION_CONTROLLER_FOR, ATK_RELATION_CONTROLLED_BY);
+
+   /* Calendar Popup */
+
+   priv->cal_popup = gtk_window_new (GTK_WINDOW_POPUP);
+   gtk_widget_set_events (priv->cal_popup,
+                gtk_widget_get_events (priv->cal_popup) | GDK_KEY_PRESS_MASK);
+   gtk_window_set_resizable (GTK_WINDOW (priv->cal_popup), FALSE);
+   g_signal_connect_swapped (G_OBJECT (priv->cal_popup), "delete-event",
+              G_CALLBACK (cal_popup_closed), edt);
+   g_signal_connect_swapped (G_OBJECT (priv->cal_popup), "key-press-event",
+              G_CALLBACK (cal_popup_key_pressed), edt);
+   g_signal_connect_swapped (G_OBJECT (priv->cal_popup), "button-press-event",
+              G_CALLBACK (cal_popup_button_pressed), edt);
+
+   priv->calendar = gtk_calendar_new ();
+   cal_options = GTK_CALENDAR_SHOW_DAY_NAMES | GTK_CALENDAR_SHOW_HEADING;
+   if (priv->week_start_monday)
+      cal_options |= GTK_CALENDAR_WEEK_START_MONDAY;
+   gtk_calendar_set_display_options (GTK_CALENDAR (priv->calendar), cal_options);
+        gtk_container_add (GTK_CONTAINER (priv->cal_popup), priv->calendar);
+   g_signal_connect_swapped (G_OBJECT (priv->calendar), "day-selected",
+              G_CALLBACK (cal_popup_changed), edt);
+   g_signal_connect_swapped (G_OBJECT (priv->calendar), "day-selected-double-click",
+              G_CALLBACK (cal_popup_double_click), edt);
+        gtk_widget_show (priv->calendar);
+
+   /* Time Popup */
+
+   priv->time_popup = gtk_window_new (GTK_WINDOW_POPUP);
+   gtk_widget_set_events (priv->time_popup,
+                gtk_widget_get_events (priv->time_popup) | GDK_KEY_PRESS_MASK);
+   gtk_window_set_resizable (GTK_WINDOW (priv->time_popup), FALSE);
+   g_signal_connect_swapped (G_OBJECT (priv->time_popup), "delete-event",
+              G_CALLBACK (time_popup_closed), edt);
+   g_signal_connect_swapped (G_OBJECT (priv->time_popup), "key-press-event",
+              G_CALLBACK (time_popup_key_pressed), edt);
+   g_signal_connect_swapped (G_OBJECT (priv->time_popup), "button-press-event",
+              G_CALLBACK (time_popup_button_pressed), edt);
+
+   priv->timelist = timelist_new ();
+   timelist_set_selection_callback (TIMELIST (priv->timelist), G_CALLBACK (time_popup_changed), edt);
+   gtk_widget_set_size_request (priv->timelist, -1, 400);
+        gtk_container_add (GTK_CONTAINER (priv->time_popup), priv->timelist);
+        gtk_widget_show (priv->timelist);
+}
+
+static void
+egg_datetime_set_property (GObject  *object,
+            guint  property_id,
+            const GValue   *value,
+            GParamSpec  *pspec)
+{
+   EggDateTime *edt;
+   EggDateTimePrivate *priv;
+
+   g_return_if_fail (object != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (object));
+ 
+   edt = EGG_DATETIME (object);
+   priv = edt->priv;
+ 
+   switch (property_id) {
+   case ARG_DISPLAY_MODE:
+      egg_datetime_set_display_mode (edt, g_value_get_uint (value));
+      break;
+   case ARG_LAZY:
+      egg_datetime_set_lazy (edt, g_value_get_boolean (value));
+      break;
+   case ARG_YEAR:
+      priv->year = g_value_get_uint (value);
+      break;
+   case ARG_MONTH:
+      priv->minute = g_value_get_uint (value);
+      break;
+   case ARG_DAY:
+      priv->day = g_value_get_uint (value);
+      break;
+   case ARG_HOUR:
+      priv->hour = g_value_get_uint (value);
+      break;
+   case ARG_MINUTE:
+      priv->minute = g_value_get_uint (value);
+      break;
+   case ARG_SECOND:
+      priv->second = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MINYEAR:
+      priv->clamp_minyear = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MINMONTH:
+      priv->clamp_minmonth = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MINDAY:
+      priv->clamp_minday = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MINHOUR:
+      priv->clamp_minhour = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MINMINUTE:
+      priv->clamp_minminute = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MINSECOND:
+      priv->clamp_minsecond = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MAXYEAR:
+      priv->clamp_maxyear = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MAXMONTH:
+      priv->clamp_maxmonth = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MAXDAY:
+      priv->clamp_maxday = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MAXHOUR:
+      priv->clamp_maxhour = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MAXMINUTE:
+      priv->clamp_maxminute = g_value_get_uint (value);
+      break;
+   case ARG_CLAMP_MAXSECOND:
+      priv->clamp_maxsecond = g_value_get_uint (value);
+      break;
+   }
+}
+
+static void
+egg_datetime_get_property (GObject  *object,
+            guint  property_id,
+            GValue   *value,
+            GParamSpec  *pspec)
+{
+   EggDateTimePrivate *priv;
+
+   g_return_if_fail (object != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (object));
+ 
+   priv = EGG_DATETIME (object)->priv;
+ 
+   switch (property_id) {
+   case ARG_DISPLAY_MODE:
+      g_value_set_uint (value, (guint) priv->display_mode);
+      break;
+   case ARG_LAZY:
+      g_value_set_boolean (value, priv->lazy);
+      break;
+   case ARG_YEAR:
+      g_value_set_uint (value, priv->year);
+      break;
+   case ARG_MONTH:
+      g_value_set_uint (value, priv->month);
+      break;
+   case ARG_DAY:
+      g_value_set_uint (value, priv->day);
+      break;
+   case ARG_HOUR:
+      g_value_set_uint (value, priv->hour);
+      break;
+   case ARG_MINUTE:
+      g_value_set_uint (value, priv->minute);
+      break;
+   case ARG_SECOND:
+      g_value_set_uint (value, priv->second);
+      break;
+   case ARG_CLAMP_MINYEAR:
+      g_value_set_uint (value, priv->clamp_minyear);
+      break;
+   case ARG_CLAMP_MINMONTH:
+      g_value_set_uint (value, priv->clamp_minmonth);
+      break;
+   case ARG_CLAMP_MINDAY:
+      g_value_set_uint (value, priv->clamp_minday);
+      break;
+   case ARG_CLAMP_MINHOUR:
+      g_value_set_uint (value, priv->clamp_minhour);
+      break;
+   case ARG_CLAMP_MINMINUTE:
+      g_value_set_uint (value, priv->clamp_minminute);
+      break;
+   case ARG_CLAMP_MINSECOND:
+      g_value_set_uint (value, priv->clamp_minsecond);
+      break;
+   case ARG_CLAMP_MAXYEAR:
+      g_value_set_uint (value, priv->clamp_maxyear);
+      break;
+   case ARG_CLAMP_MAXMONTH:
+      g_value_set_uint (value, priv->clamp_maxmonth);
+      break;
+   case ARG_CLAMP_MAXDAY:
+      g_value_set_uint (value, priv->clamp_maxday);
+      break;
+   case ARG_CLAMP_MAXHOUR:
+      g_value_set_uint (value, priv->clamp_maxhour);
+      break;
+   case ARG_CLAMP_MAXMINUTE:
+      g_value_set_uint (value, priv->clamp_maxminute);
+      break;
+   case ARG_CLAMP_MAXSECOND:
+      g_value_set_uint (value, priv->clamp_maxsecond);
+      break;
+   }
+}
+
+static void
+egg_datetime_destroy (GtkObject *object)
+{
+   EggDateTime *edt = EGG_DATETIME (object);
+   EggDateTimePrivate *priv = edt->priv;
+
+   if (priv->cal_popup) {
+      gtk_widget_destroy (priv->cal_popup);
+      priv->cal_popup = NULL;
+   }
+
+   if (priv->time_popup) {
+      gtk_widget_destroy (priv->time_popup);
+      priv->time_popup = NULL;
+   }
+
+   if (GTK_OBJECT_CLASS (parent_class)->destroy)
+      (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+}
+
+static void
+egg_datetime_finalize (GObject *object)
+{
+   EggDateTime *edt = EGG_DATETIME (object);
+
+   g_free (edt->priv);
+
+   if (G_OBJECT_CLASS (parent_class)->finalize)
+      (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+}
+
+/*
+ * Utility Functions
+ */
+
+/* Determine the number of bits, time_t uses. */
+static guint
+time_t_bits (void) {
+   guint i;
+   time_t t;
+
+   for (t = 1, i = 0; t != 0; t = t << 1, i++)
+      ;
+
+   return i;
+}
+
+static gchar *
+get_time_string (guint8 hour, guint8 minute, guint8 second)
+{
+   gchar *s;
+
+   /* Translators: set this to anything else if you want to use a
+    * 24 hour clock.
+    */
+   if (!strcmp (_("24hr: no"), "24hr: no")) {
+      const gchar *ampm_s;
+
+      if (hour < 12)
+         ampm_s = _("AM");
+      else
+         ampm_s = _("PM");
+
+      hour %= 12;
+      if (hour == 0)
+         hour = 12;
+
+      if (second <= 59)
+         /* Translators: This is hh:mm:ss AM/PM. */
+         s = g_strdup_printf (_("%02d:%02d:%02d %s"), hour, minute, second, ampm_s);
+      else
+         /* Translators: This is hh:mm AM/PM. */
+         s = g_strdup_printf (_("%02d:%02d %s"), hour, minute, ampm_s);
+   } else {
+      if (second <= 59)
+         /* Translators: This is hh:mm:ss. */
+         s = g_strdup_printf (_("%02d:%02d:%02d"), hour, minute, second);
+      else
+         /* Translators: This is hh:mm. */
+         s = g_strdup_printf (_("%02d:%02d"), hour, minute);
+   }
+
+   return s;
+}
+
+static void
+popup_position (GtkWidget *widget, GtkWindow *popup)
+{
+   GtkRequisition requisition;
+   gint x, y, width, height;
+
+   gtk_widget_size_request (GTK_WIDGET (popup), &requisition);
+   gdk_window_get_origin (widget->window, &x, &y);
+
+   x += widget->allocation.x;
+   y += widget->allocation.y;
+   width  = widget->allocation.width;
+   height = widget->allocation.height;
+
+   x += width - requisition.width;
+   y += height;
+
+   if (x < 0)
+      x = 0;
+   if (y < 0)
+      y = 0;
+
+   gtk_window_move (popup, x, y);
+}
+
+static void
+popup_show (GtkWindow *popup)
+{
+   GdkCursor *cursor;
+
+   gtk_widget_show (GTK_WIDGET (popup));
+   gtk_widget_grab_focus (GTK_WIDGET (popup));
+   gtk_grab_add (GTK_WIDGET (popup));
+
+   cursor = gdk_cursor_new (GDK_ARROW);
+   gdk_pointer_grab (GTK_WIDGET (popup)->window, TRUE,
+           (GDK_BUTTON_PRESS_MASK
+            | GDK_BUTTON_RELEASE_MASK
+            | GDK_POINTER_MOTION_MASK),
+           NULL, cursor, GDK_CURRENT_TIME);
+   gdk_cursor_unref (cursor);
+}
+
+static void
+popup_hide (GtkWindow *popup)
+{
+   gtk_widget_hide (GTK_WIDGET (popup));
+   gtk_grab_remove (GTK_WIDGET (popup));
+   gdk_pointer_ungrab (GDK_CURRENT_TIME);
+}
+
+/*
+ * Calendar Popup
+ */
+
+static void
+date_arrow_toggled (EggDateTime *edt, GtkToggleButton *button)
+{
+   EggDateTimePrivate *priv = edt->priv;
+
+   if (!gtk_toggle_button_get_active (button))
+      return;
+
+   /* Set Date */
+
+   parse_date (edt);
+
+   gtk_calendar_select_month (GTK_CALENDAR (priv->calendar), priv->month - 1, priv->year);
+   gtk_calendar_select_day (GTK_CALENDAR (priv->calendar), priv->day);
+
+   /* Position Popup */
+
+   popup_position (priv->date_button, GTK_WINDOW (priv->cal_popup));
+
+   /* Show Popup */
+
+   popup_show (GTK_WINDOW (priv->cal_popup));
+}
+
+static void
+cal_popup_changed (EggDateTime *edt, GtkCalendar *calendar)
+{
+   guint year, month, day;
+
+   gtk_calendar_get_date (GTK_CALENDAR (edt->priv->calendar), &year, &month, &day);
+
+   edt->priv->year  = year;
+   edt->priv->month = month + 1;
+   edt->priv->day   = day;
+   edt->priv->date_valid = TRUE;
+
+   normalize_date (edt);
+   update_date_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+}
+
+static void
+cal_popup_double_click (EggDateTime *edt, GtkCalendar *calendar)
+{
+   cal_popup_hide (edt);
+}
+
+static gboolean
+cal_popup_key_pressed (EggDateTime *edt, GdkEventKey *event, GtkWidget *widget)
+{
+   if (event->keyval != GDK_Escape)
+      return FALSE;
+
+   g_signal_stop_emission_by_name (G_OBJECT (widget), "key_press_event");
+
+   cal_popup_hide (edt);
+
+   return TRUE;
+}
+
+static gboolean
+cal_popup_button_pressed (EggDateTime *edt, GdkEventButton *event, GtkWidget *widget)
+{
+   GtkWidget *child;
+
+   child = gtk_get_event_widget ((GdkEvent *) event);
+
+   /* We don't ask for button press events on the grab widget, so
+    * if an event is reported directly to the grab widget, it must
+    * be on a window outside the application (and thus we remove
+    * the popup window). Otherwise, we check if the widget is a child
+    * of the grab widget, and only remove the popup window if it
+    * is not.
+    */
+   if (child != widget) {
+      while (child) {
+         if (child == widget)
+            return FALSE;
+         child = child->parent;
+      }
+   }
+
+   cal_popup_hide (edt);
+
+   return TRUE;
+}
+
+static gboolean
+cal_popup_closed (EggDateTime *edt, GtkWindow *popup)
+{
+   cal_popup_hide (edt);
+
+   return TRUE;
+}
+
+static void
+cal_popup_hide (EggDateTime *edt)
+{
+   EggDateTimePrivate *priv = edt->priv;
+
+   popup_hide (GTK_WINDOW (priv->cal_popup));
+
+   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->date_button), FALSE);
+   gtk_widget_grab_focus (priv->date_entry);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+}
+
+/*
+ * Time Popup
+ */
+
+static void
+time_arrow_toggled (EggDateTime *edt, GtkToggleButton *button)
+{
+   EggDateTimePrivate *priv = edt->priv;
+
+   if (!gtk_toggle_button_get_active (button))
+      return;
+
+   /* Set Time */
+
+   parse_time (edt);
+
+   timelist_set_time (TIMELIST (priv->timelist), priv->hour, priv->minute);
+
+   /* Position Popup */
+
+   popup_position (priv->time_button, GTK_WINDOW (priv->time_popup));
+
+   /* Show Popup */
+
+   popup_show (GTK_WINDOW (priv->time_popup));
+}
+
+static void
+time_popup_changed (EggDateTime *edt, Timelist *timelist)
+{
+   EggDateTimePrivate *priv = edt->priv;
+
+   if (!timelist_get_time (timelist, &priv->hour, &priv->minute))
+      return;
+
+   priv->second = 0;
+   priv->time_valid = TRUE;
+
+   normalize_time (edt);
+   update_time_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+}
+
+static gboolean
+time_popup_key_pressed (EggDateTime *edt, GdkEventKey *event, GtkWidget *widget)
+{
+   if (event->keyval != GDK_Escape)
+      return FALSE;
+
+   g_signal_stop_emission_by_name (G_OBJECT (widget), "key_press_event");
+
+   time_popup_hide (edt);
+
+   return TRUE;
+}
+
+static gboolean
+time_popup_button_pressed (EggDateTime *edt, GdkEventButton *event, GtkWidget *widget)
+{
+   GtkWidget *child;
+
+   child = gtk_get_event_widget ((GdkEvent *) event);
+
+   /* We don't ask for button press events on the grab widget, so
+    * if an event is reported directly to the grab widget, it must
+    * be on a window outside the application (and thus we remove
+    * the popup window). Otherwise, we check if the widget is a child
+    * of the grab widget, and only remove the popup window if it
+    * is not.
+    */
+   if (child != widget) {
+      while (child) {
+         if (child == widget)
+            return FALSE;
+         child = child->parent;
+      }
+   }
+
+   time_popup_hide (edt);
+
+   return TRUE;
+}
+
+static gboolean
+time_popup_closed (EggDateTime *edt, GtkWindow *popup)
+{
+   time_popup_hide (edt);
+
+   return TRUE;
+}
+
+static void
+time_popup_hide (EggDateTime *edt)
+{
+   EggDateTimePrivate *priv = edt->priv;
+
+   popup_hide (GTK_WINDOW (priv->time_popup));
+
+   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->time_button), FALSE);
+   gtk_widget_grab_focus (priv->time_entry);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+}
+
+/*
+ * Callbacks
+ */
+
+static gboolean
+date_focus_out (EggDateTime *edt, GtkEntry *entry)
+{
+   parse_date (edt);
+   update_date_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+
+   return FALSE;
+}
+
+static gboolean
+time_focus_out (EggDateTime *edt, GtkEntry *entry)
+{
+   parse_time (edt);
+   update_time_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+
+   return FALSE;
+}
+
+/*
+ * Private Methods
+ */
+
+static void
+apply_display_mode (EggDateTime *edt)
+{
+   if (edt->priv->display_mode & EGG_DATETIME_DISPLAY_DATE)
+      gtk_widget_show (edt->priv->date_box);
+   else
+      gtk_widget_hide (edt->priv->date_box);
+   if (edt->priv->display_mode & EGG_DATETIME_DISPLAY_MONTH)
+      gtk_widget_show (edt->priv->date_button);
+   else
+      gtk_widget_hide (edt->priv->date_button);
+
+   if (edt->priv->display_mode & EGG_DATETIME_DISPLAY_TIME)
+      gtk_widget_show (edt->priv->time_box);
+   else
+      gtk_widget_hide (edt->priv->time_box);
+   if (edt->priv->display_mode & EGG_DATETIME_DISPLAY_HOUR)
+      gtk_widget_show (edt->priv->time_button);
+   else
+      gtk_widget_hide (edt->priv->time_button);
+}
+
+static void
+clamp_time_labels (EggDateTime *edt)
+{
+   EggDateTimePrivate *priv = edt->priv;
+
+   timelist_clamp (TIMELIST (priv->timelist),
+         priv->clamp_minhour,
+         priv->clamp_minminute,
+         priv->clamp_maxhour,
+         priv->clamp_maxminute);
+}
+
+/* Updates the date entry to the current date. */
+static void
+update_date_label (EggDateTime *edt)
+{
+   EggDateTimePrivate *priv = edt->priv;
+   gchar *s;
+
+   if (!priv->date_valid) {
+      gtk_entry_set_text (GTK_ENTRY (priv->date_entry), "");
+      return;
+   }
+
+   /* TODO: should handle other display modes as well... */
+
+   /* Translators: This is YYYY-MM-DD */
+   s = g_strdup_printf (_("%04d-%02d-%02d"), priv->year, priv->month, priv->day);
+   gtk_entry_set_text (GTK_ENTRY (priv->date_entry), s);
+   g_free (s);
+}
+
+/* Updates the time entry to the current time. */
+static void
+update_time_label (EggDateTime *edt)
+{
+   EggDateTimePrivate *priv = edt->priv;
+   gchar *s;
+
+   if (!priv->time_valid) {
+      gtk_entry_set_text (GTK_ENTRY (priv->time_entry), "");
+      return;
+   }
+
+   /* TODO: should handle other display modes as well... */
+
+   if ((priv->display_mode & EGG_DATETIME_DISPLAY_SECOND) ||
+       (priv->display_mode & EGG_DATETIME_DISPLAY_SECOND_OPT))
+      s = get_time_string (priv->hour, priv->minute, priv->second);
+   else
+      s = get_time_string (priv->hour, priv->minute, 0xff);
+
+   gtk_entry_set_text (GTK_ENTRY (priv->time_entry), s);
+
+   g_free (s);
+}
+
+/* Parse the current date entry and normalize the date. */
+static void
+parse_date (EggDateTime *edt)
+{
+   GDate date;
+
+   g_date_set_parse (&date, gtk_entry_get_text (GTK_ENTRY (edt->priv->date_entry)));
+   if (!g_date_valid (&date)) {
+      if (edt->priv->lazy)
+         edt->priv->date_valid = FALSE;
+      return;
+   }
+
+   edt->priv->year  = date.year;
+   edt->priv->month = date.month;
+   edt->priv->day   = date.day;
+   edt->priv->date_valid = TRUE;
+
+   normalize_date (edt);
+}
+
+/* Parse the current time entry and normalize the time. */
+static void
+parse_time (EggDateTime *edt)
+{
+   const gchar *s;
+   gchar *scp;
+   unsigned int hour, minute, second = 0;
+   size_t len1, len2, len3;
+
+   /* Retrieve and Parse String */
+
+   s = gtk_entry_get_text (GTK_ENTRY (edt->priv->time_entry));
+
+   /* Translators: This is hh:mm:ss. */
+   if (sscanf (s, _("%u:%u:%u"), &hour, &minute, &second) < 2) {
+      if (sscanf (s, "%u:%u:%u", &hour, &minute, &second) < 2) {
+         if (edt->priv->lazy)
+            edt->priv->time_valid = FALSE;
+         return;
+      }
+   }
+
+   if (hour > 23 || minute > 59 || second > 59) {
+      if (edt->priv->lazy)
+         edt->priv->time_valid = FALSE;
+      return;
+   }
+
+   /* AM/PM Handling */
+
+   scp = g_strdup (s);
+   scp = g_strchomp (scp);
+
+   len1 = strlen (_("AM"));
+   len2 = strlen (_("PM"));
+   len3 = strlen (scp);
+
+   if (len1 < len3 && !strcasecmp (scp + len3 - len1, _("AM"))) {
+      if (hour == 12)
+         hour = 0;
+   }
+   if (len2 < len3 && !strcasecmp (scp + len3 - len2, _("PM"))) {
+      if (hour == 12)
+         hour = 0;
+      hour += 12;
+   }
+
+   /* Store Time */
+
+   edt->priv->hour   = hour;
+   edt->priv->minute = minute;
+   edt->priv->second = second;
+   edt->priv->time_valid = TRUE;
+
+   /* Cleanup */
+
+   g_free (scp);
+
+   normalize_time (edt);
+}
+
+/* Clamp the current date to the date clamp range if lazy is turned off. */
+static void
+normalize_date (EggDateTime *edt)
+{
+   GDate date, min_date, max_date;
+
+   if (edt->priv->lazy)
+      return;
+
+   g_date_clear (&date, 1);
+   g_date_set_dmy (&date, edt->priv->day, edt->priv->month, edt->priv->year);
+   g_date_clear (&min_date, 1);
+   g_date_set_dmy (&min_date, edt->priv->clamp_minday, edt->priv->clamp_minmonth, edt->priv->clamp_minyear);
+   g_date_clear (&max_date, 1);
+   g_date_set_dmy (&max_date, edt->priv->clamp_maxday, edt->priv->clamp_maxmonth, edt->priv->clamp_maxyear);
+
+   g_date_clamp (&date, &min_date, &max_date);
+
+   edt->priv->year  = date.year;
+   edt->priv->month = date.month;
+   edt->priv->day   = date.day;
+   edt->priv->date_valid = TRUE;
+}
+
+/* Clamp the current time to the time clamp range if lazy is turned off. */
+static void
+normalize_time (EggDateTime *edt)
+{
+   if (edt->priv->lazy)
+      return;
+
+   if (edt->priv->hour < edt->priv->clamp_minhour) {
+      edt->priv->hour   = edt->priv->clamp_minhour;
+      edt->priv->minute = edt->priv->clamp_minminute;
+      edt->priv->second = edt->priv->clamp_minsecond;
+   } else if (edt->priv->hour == edt->priv->clamp_minhour) {
+      if (edt->priv->minute < edt->priv->clamp_minminute) {
+         edt->priv->minute = edt->priv->clamp_minminute;
+         edt->priv->second = edt->priv->clamp_minsecond;
+      } else if (edt->priv->minute == edt->priv->clamp_minminute) {
+         if (edt->priv->second < edt->priv->clamp_minsecond)
+            edt->priv->second = edt->priv->clamp_minsecond;
+      }
+   }
+
+   if (edt->priv->hour > edt->priv->clamp_maxhour) {
+      edt->priv->hour   = edt->priv->clamp_maxhour;
+      edt->priv->minute = edt->priv->clamp_maxminute;
+      edt->priv->second = edt->priv->clamp_maxsecond;
+   } else if (edt->priv->hour == edt->priv->clamp_maxhour) {
+      if (edt->priv->minute > edt->priv->clamp_maxminute) {
+         edt->priv->minute = edt->priv->clamp_maxminute;
+         edt->priv->second = edt->priv->clamp_maxsecond;
+      } else if (edt->priv->minute == edt->priv->clamp_maxminute) {
+         if (edt->priv->second > edt->priv->clamp_maxsecond)
+            edt->priv->second = edt->priv->clamp_maxsecond;
+      }
+   }
+
+   edt->priv->time_valid = TRUE;
+}
+
+static void
+parse_and_update_date (EggDateTime *edt)
+{
+   if (edt->priv->lazy)
+      return;
+
+   parse_date (edt);
+   update_date_label (edt);
+}
+
+static void
+parse_and_update_time (EggDateTime *edt)
+{
+   if (edt->priv->lazy)
+      return;
+
+   parse_time (edt);
+   update_time_label (edt);
+}
+
+/*
+ * Public Methods
+ */
+
+/**
+ * egg_datetime_new:
+ *
+ * Creates a new #EggDateTime widget. By default this widget will show
+ * only the date component and is set to the current date and time.
+ *
+ * Return value: a newly created #EggDateTime widget
+ **/
+GtkWidget *
+egg_datetime_new (void)
+{
+   EggDateTime *edt;
+
+   edt = g_object_new (EGG_TYPE_DATETIME, NULL);
+   egg_datetime_set_from_time_t (edt, time (NULL));
+
+   return GTK_WIDGET (edt);
+}
+
+/**
+ * egg_datetime_new_from_time_t:
+ * @t: initial time and date
+ *
+ * Creates a new #EggDateTime widget and sets it to the date and time
+ * given as @t argument. This does also call egg_datetime_set_clamp_time_t().
+ * By default this widget will show only the date component.
+ *
+ * Return value: a newly created #EggDateTime widget
+ **/
+GtkWidget *
+egg_datetime_new_from_time_t (time_t t)
+{
+   EggDateTime *edt;
+
+   g_return_val_if_fail (t >= 0, NULL);
+
+   edt = g_object_new (EGG_TYPE_DATETIME, NULL);
+   egg_datetime_set_from_time_t (edt, t);
+   egg_datetime_set_clamp_time_t (edt);
+
+   return GTK_WIDGET (edt);
+}
+
+/**
+ * egg_datetime_new_from_struct_tm:
+ * @tm: initial time and date
+ *
+ * Creates a new #EggDateTime widget and sets it to the date and time
+ * given as @tm argument. By default this widget will show only the date
+ * component.
+ *
+ * Return value: a newly created #EggDateTime widget
+ **/
+GtkWidget *
+egg_datetime_new_from_struct_tm (struct tm *tm)
+{
+   EggDateTime *edt;
+
+   g_return_val_if_fail (tm != NULL, NULL);
+
+   edt = g_object_new (EGG_TYPE_DATETIME, NULL);
+   egg_datetime_set_from_struct_tm (edt, tm);
+
+   return GTK_WIDGET (edt);
+}
+
+/**
+ * egg_datetime_new_from_gdate:
+ * @date: initial time and date
+ *
+ * Creates a new #EggDateTime widget and sets it to the date and time
+ * given as @date argument. By default this widget will show only the
+ * date component.
+ *
+ * Return value: a newly created #EggDateTime widget
+ **/
+GtkWidget *
+egg_datetime_new_from_gdate (GDate *date)
+{
+   EggDateTime *edt;
+
+   g_return_val_if_fail (date != NULL, NULL);
+
+   edt = g_object_new (EGG_TYPE_DATETIME, NULL);
+   egg_datetime_set_from_gdate (edt, date);
+
+   return GTK_WIDGET (edt);
+}
+
+/**
+ * egg_datetime_new_from_datetime:
+ * @year: initial year
+ * @month: initial month
+ * @day: initial day
+ * @hour: initial hour
+ * @minute: initial minute
+ * @second: initial second
+ *
+ * Creates a new #EggDateTime widget and sets it to the date and time
+ * given as arguments.
+ *
+ * Return value: a newly created #EggDateTime widget
+ **/
+GtkWidget *
+egg_datetime_new_from_datetime (GDateYear year, GDateMonth month, GDateDay day, guint8 hour, guint8 minute, guint8 second)
+{
+   EggDateTime *edt;
+
+   edt = g_object_new (EGG_TYPE_DATETIME, NULL);
+   egg_datetime_set_date (edt, year, month, day);
+   egg_datetime_set_time (edt, hour, minute, second);
+
+   return GTK_WIDGET (edt);
+}
+
+/**
+ * egg_datetime_set_none:
+ * @edt: an #EggDateTime
+ *
+ * Sets the date to an invalid value. If lazy mode is turned off the date
+ * and time will be set to a random value.
+ **/
+void
+egg_datetime_set_none (EggDateTime *edt)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   edt->priv->date_valid = FALSE;
+   edt->priv->time_valid = FALSE;
+
+   update_date_label (edt);
+   update_time_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+}
+
+/**
+ * egg_datetime_set_from_time_t:
+ * @edt: an #EggDateTime
+ * @t: date and time to set the widget to
+ *
+ * Sets the date and time of the widget to @t.
+ **/
+void
+egg_datetime_set_from_time_t (EggDateTime *edt, time_t t)
+{
+   struct tm tm;
+
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   if (localtime_r (&t, &tm)) {
+      egg_datetime_set_date (edt, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
+      egg_datetime_set_time (edt, tm.tm_hour, tm.tm_min, tm.tm_sec);
+   } else
+      egg_datetime_set_none (edt);
+}
+
+/**
+ * egg_datetime_get_as_time_t:
+ * @edt: an #EggDateTime
+ * @t: pointer to a %time_t value
+ *
+ * Returns the current time as a %time_t value. If the currently entered
+ * value is invalid and lazy mode is turned on or if the entered date
+ * can't be represented as a %time_t value, the value is set to -1 and
+ * FALSE is returned.
+ *
+ * Return value: success indicator
+ **/
+gboolean
+egg_datetime_get_as_time_t (EggDateTime *edt, time_t *t)
+{
+   struct tm tm;
+   GDateYear year;
+        GDateMonth month;
+   GDateDay day;
+   guint8 hour, minute, second;
+
+   g_return_val_if_fail (edt != NULL, FALSE);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), FALSE);
+
+   if (!t)
+      return FALSE;
+
+   if (!egg_datetime_get_date (edt, &year, &month, &day)) {
+      *t = -1;
+      return FALSE;
+   }
+   if (!egg_datetime_get_time (edt, &hour, &minute, &second)) {
+      *t = -1;
+      return FALSE;
+   }
+
+   memset (&tm, 0, sizeof (struct tm));
+   tm.tm_year = year - 1900;
+   tm.tm_mon  = month - 1;
+   tm.tm_mday = day;
+   tm.tm_hour = hour;
+   tm.tm_min  = minute;
+   tm.tm_sec  = second;
+
+   *t = mktime (&tm);
+
+   if (*t < 0) {
+      *t = -1;
+      return FALSE;
+   }
+   
+   return TRUE;
+}
+
+/**
+ * egg_datetime_set_from_struct_tm:
+ * @edt: an #EggDateTime
+ * @tm: date and time to set the widget to
+ *
+ * Sets the date and time of the widget to @tm.
+ **/
+void
+egg_datetime_set_from_struct_tm (EggDateTime *edt, struct tm *tm)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+   g_return_if_fail (tm != NULL);
+
+   egg_datetime_set_date (edt, tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday);
+   egg_datetime_set_time (edt, tm->tm_hour, tm->tm_min, tm->tm_sec);
+}
+
+/**
+ * egg_datetime_get_as_struct_tm:
+ * @edt: an #EggDateTime
+ * @tm: pointer to an allocated struct tm
+ *
+ * Fill the supplied struct tm with the widget's current date and time.
+ * If the currently entered value is invalid and lazy mode is turned
+ * on or if the entered date can't be represented as a struct tm, the
+ * struct is filled with invalid data and FALSE is returned.
+ *
+ * Return value: success indicator
+ **/
+gboolean
+egg_datetime_get_as_struct_tm (EggDateTime *edt, struct tm *tm)
+{
+   GDateYear year;
+   GDateMonth month;
+   GDateDay day;
+   guint8 hour, minute, second;
+
+   g_return_val_if_fail (edt != NULL, FALSE);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), FALSE);
+
+   if (!tm)
+      return FALSE;
+
+   memset (tm, 0, sizeof (struct tm));
+
+   if (!egg_datetime_get_date (edt, &year, &month, &day))
+      return FALSE;
+   if (!egg_datetime_get_time (edt, &hour, &minute, &second))
+      return FALSE;
+
+   tm->tm_year = year - 1900;
+   tm->tm_mon  = month - 1;
+   tm->tm_mday = day;
+   tm->tm_hour = hour;
+   tm->tm_min  = minute;
+   tm->tm_sec  = second;
+
+   mktime (tm);
+   
+   return TRUE;
+}
+
+/**
+ * egg_datetime_set_from_gdate:
+ * @edt: an #EggDateTime
+ * @date: date to set the widget to
+ *
+ * Sets the date of the widget to @date. The time will remain unchanged.
+ **/
+void
+egg_datetime_set_from_gdate (EggDateTime *edt, GDate *date)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+   g_return_if_fail (date != NULL);
+
+   if (g_date_valid (date))
+      egg_datetime_set_date (edt, date->year, date->month, date->day);
+   else
+      egg_datetime_set_none (edt);
+}
+
+/**
+ * egg_datetime_get_as_gdate:
+ * @edt: an #EggDateTime
+ * @date: pointer to an allocated #GDate
+ *
+ * Fills the supplied #GDate with the widget's current date. If the
+ * currently entered date value is invalid and lazy mode is turned
+ * on or if the entered date can't be represented as a #GDate, the
+ * @date is set to an invalid value and FALSE is returned.
+ *
+ * Return value: success indicator
+ **/
+gboolean
+egg_datetime_get_as_gdate (EggDateTime *edt, GDate *date)
+{
+   GDateYear year;
+   GDateMonth month;
+   GDateDay day;
+
+   g_return_val_if_fail (edt != NULL, FALSE);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), FALSE);
+
+   if (!date)
+      return FALSE;
+
+   g_date_clear (date, 1);
+
+   if (!egg_datetime_get_date (edt, &year, &month, &day))
+      return FALSE;
+
+   g_date_set_dmy (date, day, month, year);
+
+   return TRUE;
+}
+
+/**
+ * egg_datetime_set_date:
+ * @edt: an #EggDateTime
+ * @year: a #guint16 between 1 and 9999
+ * @month: a #guint8 between 1 and 12
+ * @day: a #guint8 between 1 and 28-31 (depending on @month)
+ *
+ * Sets the date of the widget. The time will remain unchanged.
+ **/
+void
+egg_datetime_set_date (EggDateTime *edt, GDateYear year, GDateMonth month, GDateDay day)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+   g_return_if_fail (year >= 1 && year <= 9999);
+   g_return_if_fail (month >= 1 && month <= 12);
+   g_return_if_fail (day >= 1 && day <= g_date_get_days_in_month (month, year));
+
+   edt->priv->year  = year;
+   edt->priv->month = month;
+   edt->priv->day   = day;
+   edt->priv->date_valid = TRUE;
+
+   normalize_date (edt);
+   update_date_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+}
+
+/**
+ * egg_datetime_get_date:
+ * @edt: an #EggDateTime
+ * @year: a pointer to a #guint16 or %NULL
+ * @month: a pointer to #guint8 or %NULL
+ * @day: a pointer to a #guint8 or %NULL
+ *
+ * Fills the supplied arguments with the widget's current date. If the
+ * currently entered date value is invalid and lazy mode is turned
+ * on, the arguments are set to %EGG_DATETIME_INVALID_DATE and FALSE
+ * is returned.
+ *
+ * Return value: success indicator
+ **/
+gboolean
+egg_datetime_get_date (EggDateTime *edt, GDateYear *year, GDateMonth *month, GDateDay *day)
+{
+   g_return_val_if_fail (edt != NULL, FALSE);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), FALSE);
+
+   parse_date (edt);
+
+   if (!edt->priv->date_valid) {
+      if (year)
+         *year = 0;
+      if (month)
+         *month = 0;
+      if (day)
+         *day = 0;
+      return FALSE;
+   }
+
+   if (year)
+      *year  = edt->priv->year;
+   if (month)
+      *month = edt->priv->month;
+   if (day)
+      *day   = edt->priv->day;
+   
+   return TRUE;
+}
+
+/**
+ * egg_datetime_set_time:
+ * @edt: an #EggDateTime
+ * @hour: a #guint8 between 0 and 23
+ * @minute: a #guint8 between 0 and 59
+ * @second: a #guint8 between 0 and 59
+ *
+ * Sets the time of the widget. The date will remain unchanged.
+ **/
+void
+egg_datetime_set_time (EggDateTime *edt, guint8 hour, guint8 minute, guint8 second)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+   g_return_if_fail (hour <= 23);
+   g_return_if_fail (minute <= 59);
+   g_return_if_fail (second <= 59);
+
+   edt->priv->hour   = hour;
+   edt->priv->minute = minute;
+   edt->priv->second = second;
+   edt->priv->time_valid = TRUE;
+
+   normalize_time (edt);
+   update_time_label (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+}
+
+/**
+ * egg_datetime_get_date:
+ * @edt: an #EggDateTime
+ * @hour: a pointer to a #guint8 or %NULL
+ * @minute: a pointer to #guint8 or %NULL
+ * @second: a pointer to a #guint8 or %NULL
+ *
+ * Fills the supplied arguments with the widget's current time. If the
+ * currently entered time value is invalid and lazy mode is turned
+ * on, the arguments are set to %EGG_DATETIME_INVALID_TIME and FALSE
+ * is returned.
+ *
+ * Return value: success indicator
+ **/
+gboolean
+egg_datetime_get_time (EggDateTime *edt, guint8 *hour, guint8 *minute, guint8 *second)
+{
+   g_return_val_if_fail (edt != NULL, FALSE);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), FALSE);
+
+   parse_time (edt);
+
+   if (!edt->priv->time_valid) {
+      if (hour)
+         *hour = 0xff;
+      if (minute)
+         *minute = 0xff;
+      if (second)
+         *second = 0xff;
+      return FALSE;
+   }
+
+   if (hour)
+      *hour   = edt->priv->hour;
+   if (minute)
+      *minute = edt->priv->minute;
+   if (second)
+      *second = edt->priv->second;
+   
+   return TRUE;
+}
+
+/**
+ * egg_datetime_set_lazy:
+ * @edt: an #EggDateTime
+ * @lazy: a boolean value
+ *
+ * Turns the widget's lazy mode on or off. In lazy mode the widget will
+ * allow invalid values to be entered. If lazy mode is turned off the
+ * widget will normalize all invalid values entered in the date and time
+ * widgets to the nearest valid value. This guarantees that the get methods
+ * will always return valid values.
+ *
+ * Lazy mode defaults to %TRUE.
+ **/
+void
+egg_datetime_set_lazy (EggDateTime *edt, gboolean lazy)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   edt->priv->lazy = lazy ? TRUE : FALSE;
+
+   parse_and_update_date (edt);
+   parse_and_update_time (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+}
+
+/**
+ * egg_datetime_get_lazy:
+ * @edt: an #EggDateTime
+ *
+ * Returns whether the widget is in lazy mode.
+ *
+ * Return value: a boolean value
+ **/
+gboolean
+egg_datetime_get_lazy (EggDateTime *edt)
+{
+   g_return_val_if_fail (edt != NULL, FALSE);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), FALSE);
+
+   return edt->priv->lazy;
+}
+
+/**
+ * egg_datetime_set_display_mode:
+ * @edt: an #EggDateTime
+ * @mode: new display mode
+ *
+ * Sets the widget's new display mode to @mode. The display mode defaults
+ * to %EGG_DATETIME_DISPLAY_DATE.
+ **/
+void
+egg_datetime_set_display_mode (EggDateTime *edt, EggDateTimeDisplayMode mode)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   edt->priv->display_mode = mode;
+
+   apply_display_mode (edt);
+}
+
+/**
+ * egg_datetime_get_display_mode:
+ * @edt: an #EggDateTime
+ *
+ * Returns the current display mode.
+ *
+ * Return value: The current display mode.
+ **/
+EggDateTimeDisplayMode
+egg_datetime_get_display_mode (EggDateTime *edt)
+{
+   g_return_val_if_fail (edt != NULL, 0);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), 0);
+
+   return edt->priv->display_mode;
+}
+
+/**
+ * egg_datetime_set_clamp_date:
+ * @edt: an #EggDateTime
+ * @minyear: minimum year
+ * @minmonth: minimum month
+ * @minday: minimum day
+ * @maxyear: maximum year
+ * @maxmonth: maximum month
+ * @maxday: maximum day
+ *
+ * Limits the allowed dates to the range given. If lazy mode is
+ * turned off, dates that are outside of this range are snapped to the
+ * minimum or maximum date. Otherwise such dates return an invalid value.
+ *
+ * This defaults to the minimum date 1-1-1 and maximum date 9999-12-31.
+ * The maximum year is always limited to 9999.
+ **/
+void
+egg_datetime_set_clamp_date (EggDateTime *edt,
+              GDateYear  minyear,
+              GDateMonth minmonth,
+              GDateDay   minday,
+              GDateYear  maxyear,
+              GDateMonth maxmonth,
+              GDateDay   maxday)
+{
+   if (maxyear > 9999)
+      maxyear = 9999;
+
+   g_return_if_fail (minyear >= 1 && minyear <= 9999 && maxyear >= 1);
+   g_return_if_fail (minmonth >= 1 && minmonth <= 12 && maxmonth >= 1 && maxmonth <= 12);
+   g_return_if_fail (minday >= 1 && minday <= g_date_get_days_in_month (minmonth, minyear));
+   g_return_if_fail (maxday >= 1 && maxday <= g_date_get_days_in_month (maxmonth, maxyear));
+   g_return_if_fail (minyear <= maxyear);
+   g_return_if_fail (minyear < maxyear || minmonth <= maxmonth);
+   g_return_if_fail (minyear < maxyear || minmonth < maxmonth || minday <= maxday);
+
+   edt->priv->clamp_minyear  = minyear;
+   edt->priv->clamp_minmonth = minmonth;
+   edt->priv->clamp_minday   = minday;
+   edt->priv->clamp_maxyear  = maxyear;
+   edt->priv->clamp_maxmonth = maxmonth;
+   edt->priv->clamp_maxday   = maxday;
+
+   parse_and_update_date (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_DATE_CHANGED], 0);
+}
+
+/**
+ * egg_datetime_set_clamp_time:
+ * @edt: an #EggDateTime
+ * @minhour: minimum hour
+ * @minminute: minimum minute
+ * @minsecond: minimum second
+ * @maxhour: maximum hour
+ * @maxminute: maximum minute
+ * @maxsecond: maximum second
+ *
+ * Limits the allowed times to the range given. If lazy mode is turned
+ * off, times that are outside of this range are snapped to the minimum or
+ * maximum time. Otherwise such times return an invalid value.
+ **/
+void
+egg_datetime_set_clamp_time (EggDateTime *edt, guint8 minhour, guint8 minminute, guint8 minsecond, guint8 maxhour, guint8 maxminute, guint8 maxsecond)
+{
+   g_return_if_fail (minhour <= 23 && maxhour <= 23);
+   g_return_if_fail (minminute <= 59 && maxminute <= 59);
+   g_return_if_fail (minsecond <= 59 && maxsecond <= 59);
+   g_return_if_fail (minhour <= maxhour);
+   g_return_if_fail (minhour < maxhour || minminute <= maxminute);
+   g_return_if_fail (minhour < maxhour || minminute < maxminute || minsecond <= maxsecond);
+
+   edt->priv->clamp_minhour   = minhour;
+   edt->priv->clamp_minminute = minminute;
+   edt->priv->clamp_minsecond = minsecond;
+   edt->priv->clamp_maxhour   = maxhour;
+   edt->priv->clamp_maxminute = maxminute;
+   edt->priv->clamp_maxsecond = maxsecond;
+
+   clamp_time_labels (edt);
+   parse_and_update_time (edt);
+
+   g_signal_emit (G_OBJECT (edt), egg_datetime_signals[SIGNAL_TIME_CHANGED], 0);
+}
+
+/**
+ * egg_datetime_set_clamp_time_t:
+ * @edt: an #EggDateTime
+ *
+ * Clamps the allowed dates of the widget to valid #time_t values.
+ * The time clamp settings are not changed.
+ **/
+void
+egg_datetime_set_clamp_time_t (EggDateTime *edt)
+{
+   time_t t;
+   struct tm start_tm, end_tm;
+   guint bits;
+   guint16 year;
+   guint8 month, day;
+
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   t = 0;
+   gmtime_r (&t, &start_tm);
+
+   /* evil hack */
+   bits = time_t_bits ();
+   t = ~0;
+   t &= ~(1 << (bits - 1));
+
+   gmtime_r (&t, &end_tm);
+
+   /* Subtract one day from the end date, since not all times of
+    * the last day can be represented.
+    */
+
+   year  = end_tm.tm_year + 1900;
+   month = end_tm.tm_mon + 1;
+   day   = end_tm.tm_mday;
+
+   if (--day == 0)   {
+      if (--month == 0) {
+         year--;
+         month = 12;
+      }
+
+      day = g_date_get_days_in_month (month, year);
+   }
+
+   egg_datetime_set_clamp_date (edt, start_tm.tm_year + 1900, start_tm.tm_mon + 1, start_tm.tm_mday, year, month, day);
+}
+
+/**
+ * egg_datetime_get_clamp_date:
+ * @edt: an #EggDateTime
+ * @minyear: #guint16 pointer or %NULL
+ * @minmonth: #guint8 pointer or %NULL
+ * @minday: #guint8 pointer or %NULL
+ * @maxyear: #guint16 pointer or %NULL
+ * @maxmonth: #guint8 pointer or %NULL
+ * @maxday: #guint8 pointer or %NULL
+ *
+ * Returns the current date limit settings.
+ **/
+void
+egg_datetime_get_clamp_date (EggDateTime *edt,
+              GDateYear   *minyear,
+              GDateMonth  *minmonth,
+              GDateDay    *minday,
+              GDateYear   *maxyear,
+              GDateMonth  *maxmonth,
+              GDateDay    *maxday)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   if (minyear)
+      *minyear = edt->priv->clamp_minyear;
+   if (minmonth)
+      *minmonth = edt->priv->clamp_minmonth;
+   if (minday)
+      *minday = edt->priv->clamp_minday;
+   if (maxyear)
+      *maxyear = edt->priv->clamp_maxyear;
+   if (maxmonth)
+      *maxmonth = edt->priv->clamp_maxmonth;
+   if (maxday)
+      *maxday = edt->priv->clamp_maxday;
+}
+
+/**
+ * egg_datetime_get_clamp_time:
+ * @edt: an #EggDateTime
+ * @minhour: #guint8 pointer or %NULL
+ * @minminute: #guint8 pointer or %NULL
+ * @minsecond: #guint8 pointer or %NULL
+ * @maxhour: #guint8 pointer or %NULL
+ * @maxminute: #guint8 pointer or %NULL
+ * @maxsecond: #guint8 pointer or %NULL
+ *
+ * Returns the current time limit settings.
+ **/
+void
+egg_datetime_get_clamp_time (EggDateTime *edt, guint8 *minhour, guint8 *minminute, guint8 *minsecond, guint8 *maxhour, guint8 *maxminute, guint8 *maxsecond)
+{
+   g_return_if_fail (edt != NULL);
+   g_return_if_fail (EGG_IS_DATETIME (edt));
+
+   if (minhour)
+      *minhour = edt->priv->clamp_minhour;
+   if (minminute)
+      *minminute = edt->priv->clamp_minminute;
+   if (minsecond)
+      *minsecond = edt->priv->clamp_minsecond;
+   if (maxhour)
+      *maxhour = edt->priv->clamp_maxhour;
+   if (maxminute)
+      *maxminute = edt->priv->clamp_maxminute;
+   if (maxsecond)
+      *maxsecond = edt->priv->clamp_maxsecond;
+}
+
+/**
+ * egg_datetime_get_date_layout:
+ * @edt: an #EggDateTime
+ *
+ * Gets the PangoLayout used to display the date. See gtk_entry_get_layout()
+ * for more information. The returned layout is owned by the date/time
+ * widget so need not be freed by the caller.
+ *
+ * Return value: the #PangoLayout for this widget's date part
+ */
+PangoLayout *
+egg_datetime_get_date_layout (EggDateTime *edt)
+{
+   g_return_val_if_fail (edt != NULL, NULL);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), NULL);
+
+   return gtk_entry_get_layout (GTK_ENTRY (edt->priv->date_entry));
+}
+
+/**
+ * egg_datetime_get_time_layout:
+ * @edt: an #EggDateTime
+ *
+ * Gets the PangoLayout used to display the time. See gtk_entry_get_layout()
+ * for more information. The returned layout is owned by the date/time
+ * widget so need not be freed by the caller.
+ *
+ * Return value: the #PangoLayout for this widget's time part
+ */
+PangoLayout *
+egg_datetime_get_time_layout (EggDateTime *edt)
+{
+   g_return_val_if_fail (edt != NULL, NULL);
+   g_return_val_if_fail (EGG_IS_DATETIME (edt), NULL);
+
+   return gtk_entry_get_layout (GTK_ENTRY (edt->priv->time_entry));
+}
+
+/**************************************************************************/
+
+/* This is a private time list widget implementation for use as time popup.
+ */
+
+static GtkWidget *
+timelist_new (void)
+{
+   GtkWidget *timelist;
+   GtkWidget *list;
+   GtkListStore *model;
+   GtkTreeSelection *selection;
+   GtkCellRenderer *renderer;
+
+   timelist = gtk_scrolled_window_new (NULL, NULL);
+   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (timelist),
+               GTK_POLICY_NEVER,
+               GTK_POLICY_ALWAYS);
+
+   model = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_UINT);
+   list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
+   gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list), FALSE);
+   gtk_widget_show (list);
+
+   renderer = gtk_cell_renderer_text_new ();
+   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (list),
+                       -1,
+                       _("Time"),
+                       renderer,
+                       "text", 0,
+                       NULL);
+
+   gtk_container_add (GTK_CONTAINER (timelist), list);
+
+   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
+   gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+
+   timelist_set_list (TIMELIST (timelist), 00, 00, 23, 59);
+
+   return timelist;
+}
+
+static void
+timelist_set_list (Timelist *timelist,
+         guint8 minhour, guint8 minminute,
+         guint8 maxhour, guint8 maxminute)
+{
+   GtkWidget *tree = gtk_bin_get_child (GTK_BIN (timelist));
+   GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree));
+   gint minidx, maxidx;
+   gint i;
+
+   minidx = minhour * 2 + (minminute + 29) / 30;
+   maxidx = maxhour * 2 + (maxminute + 29) / 30;
+
+   for (i = minidx; i < maxidx; i++) {
+      GtkTreeIter iter;
+      gchar *s;
+      guint hour, minute;
+
+      hour = i / 2;
+      minute = (i % 2) * 30;
+
+      s = get_time_string (hour, minute, 0xff);
+
+      gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+      gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+                0, s,
+                1, hour * 100 + minute,
+                -1);
+
+      g_free (s);
+   }
+}
+
+static void
+timelist_set_time (Timelist *timelist, guint8 hour, guint8 minute)
+{
+   GtkWidget *tree = gtk_bin_get_child (GTK_BIN (timelist));
+   GtkTreeModel *model;
+   GtkTreeSelection *selection;
+   GtkTreeIter iter;
+
+   model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree));
+   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
+
+   if (!gtk_tree_model_get_iter_first (model, &iter))
+      return;
+
+   do {
+      guint time;
+
+      gtk_tree_model_get (model, &iter, 1, &time, -1);
+
+      if (time / 100 == hour && time % 100 == minute) {
+         gtk_tree_selection_select_iter (selection, &iter);
+         return;
+      }
+
+   } while (gtk_tree_model_iter_next (model, &iter));
+
+   gtk_tree_selection_unselect_all (selection);
+}
+
+static gboolean
+timelist_get_time (Timelist *timelist, guint8 *hour, guint8 *minute)
+{
+   GtkWidget *tree = gtk_bin_get_child (GTK_BIN (timelist));
+   GtkTreeSelection *selection;
+   GtkTreeModel *model;
+   GtkTreeIter iter;
+   guint time;
+
+   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
+
+   if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+      return FALSE;
+
+   gtk_tree_model_get (model, &iter, 1, &time, -1);
+
+   if (hour)
+      *hour = time / 100;
+   if (minute)
+      *minute = time % 100;
+
+   return TRUE;
+}
+
+static void
+timelist_clamp (Timelist *timelist,
+      guint8 minhour, guint8 minminute,
+      guint8 maxhour, guint8 maxminute)
+{
+   timelist_set_list (timelist, minhour, minminute, maxhour, maxminute);
+}
+
+static void
+timelist_selection_cb (Timelist *timelist, GtkTreeSelection *selection)
+{
+   void (*cb)(gpointer, Timelist *);
+   gpointer data;
+
+   cb   = g_object_get_data (G_OBJECT (selection), "cb");
+   data = g_object_get_data (G_OBJECT (selection), "data");
+
+   cb (data, timelist);
+}
+
+static void
+timelist_set_selection_callback (Timelist *timelist, void (*cb)(void), gpointer data)
+{
+   GtkWidget *tree = gtk_bin_get_child (GTK_BIN (timelist));
+   GtkTreeSelection *selection;
+
+   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
+
+   g_object_set_data (G_OBJECT (selection), "cb", cb);
+   g_object_set_data (G_OBJECT (selection), "data", data);
+   g_signal_connect_swapped (G_OBJECT (selection), "changed",
+              G_CALLBACK (timelist_selection_cb), timelist);
+}

Added: trunk/libegg/egg-datetime.h
==============================================================================
--- (empty file)
+++ trunk/libegg/egg-datetime.h	Sun May  4 20:22:27 2008
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2002, 2003  Sebastian Rittau <srittau jroger in-berlin de>
+ * $Id$
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with the Gnome Library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EGG_DATETIME_H__
+#define __EGG_DATETIME_H__
+
+#include <time.h>
+
+#include <glib.h>
+
+#include <gtk/gtkhbox.h>
+
+G_BEGIN_DECLS
+
+typedef enum
+{
+   /* don't use the following values for now... */
+   EGG_DATETIME_DISPLAY_YEAR       = 1 << 0,
+   EGG_DATETIME_DISPLAY_MONTH      = 1 << 1,
+   EGG_DATETIME_DISPLAY_DAY        = 1 << 2,
+   EGG_DATETIME_DISPLAY_HOUR       = 1 << 3,
+   EGG_DATETIME_DISPLAY_MINUTE     = 1 << 4,
+   EGG_DATETIME_DISPLAY_SECOND     = 1 << 5,
+   EGG_DATETIME_DISPLAY_YEAR_OPT   = 1 << 6,
+   EGG_DATETIME_DISPLAY_MONTH_OPT  = 1 << 7,
+   EGG_DATETIME_DISPLAY_DAY_OPT    = 1 << 8,
+   EGG_DATETIME_DISPLAY_HOUR_OPT   = 1 << 9,
+   EGG_DATETIME_DISPLAY_MINUTE_OPT = 1 << 10,
+   EGG_DATETIME_DISPLAY_SECOND_OPT = 1 << 11
+} EggDateTimeDisplayMode;
+
+/* ... use these instead */
+#define EGG_DATETIME_DISPLAY_DATE (EGG_DATETIME_DISPLAY_YEAR | EGG_DATETIME_DISPLAY_MONTH | EGG_DATETIME_DISPLAY_DAY)
+#define EGG_DATETIME_DISPLAY_TIME (EGG_DATETIME_DISPLAY_HOUR | EGG_DATETIME_DISPLAY_MINUTE)
+#define EGG_DATETIME_DISPLAY_TIME_SECONDS (EGG_DATETIME_DISPLAY_HOUR | EGG_DATETIME_DISPLAY_MINUTE | EGG_DATETIME_DISPLAY_SECOND)
+
+#define EGG_DATETIME_INVALID_DATE (0)
+#define EGG_DATETIME_INVALID_TIME (0xff)
+
+
+#define EGG_TYPE_DATETIME     (egg_datetime_get_type ())
+#define EGG_DATETIME(obj)     (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_DATETIME, EggDateTime))
+#define EGG_DATETIME_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_DATETIME, EggDateTimeClass))
+#define EGG_IS_DATETIME(obj)     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_DATETIME))
+#define EGG_IS_DATETIME_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_DATETIME))
+#define EGG_DATETIME_GET_CLASS(obj) (G_TYPE_CHECK_GET_CLASS ((obj), EGG_TYPE_DATETIME, EggDateTimeClass))
+
+typedef struct _EggDateTime      EggDateTime;
+typedef struct _EggDateTimeClass EggDateTimeClass;
+typedef struct _EggDateTimePrivate  EggDateTimePrivate;
+
+struct _EggDateTime
+{
+   GtkHBox parent;
+
+   EggDateTimePrivate *priv;
+};
+
+struct _EggDateTimeClass
+{
+   GtkHBoxClass parent_class;
+
+   /* Signals */
+
+   void (*date_changed) (EggDateTime *edt);
+   void (*time_changed) (EggDateTime *edt);
+};
+
+
+/* Constructors */
+GtkType         egg_datetime_get_type        (void);
+GtkWidget      *egg_datetime_new       (void); 
+GtkWidget      *egg_datetime_new_from_time_t    (time_t t);
+GtkWidget      *egg_datetime_new_from_struct_tm (struct tm *tm);
+GtkWidget      *egg_datetime_new_from_gdate     (GDate *date);
+GtkWidget      *egg_datetime_new_from_datetime     (GDateYear year, GDateMonth month, GDateDay day, guint8 hour, guint8 minute, guint8 second);
+
+/* Accessors */
+void         egg_datetime_set_none        (EggDateTime *edt);
+void         egg_datetime_set_from_time_t    (EggDateTime *edt, time_t t);
+gboolean     egg_datetime_get_as_time_t      (EggDateTime *edt, time_t *t);
+void         egg_datetime_set_from_struct_tm (EggDateTime *edt, struct tm *tm);
+gboolean     egg_datetime_get_as_struct_tm      (EggDateTime *edt, struct tm *tm);
+void         egg_datetime_set_from_gdate     (EggDateTime *edt, GDate *date);
+gboolean     egg_datetime_get_as_gdate    (EggDateTime *edt, GDate *date);
+void         egg_datetime_set_date        (EggDateTime *edt, GDateYear year, GDateMonth month, GDateDay day);
+gboolean     egg_datetime_get_date        (EggDateTime *edt, GDateYear *year, GDateMonth *month, GDateDay *day);
+void         egg_datetime_set_time        (EggDateTime *edt, guint8 hour, guint8 minute, guint8 second);
+gboolean     egg_datetime_get_time        (EggDateTime *edt, guint8 *hour, guint8 *minute, guint8 *second);
+
+void         egg_datetime_set_lazy        (EggDateTime *edt, gboolean lazy);
+gboolean     egg_datetime_get_lazy        (EggDateTime *edt);
+void         egg_datetime_set_display_mode      (EggDateTime *edt, EggDateTimeDisplayMode mode);
+EggDateTimeDisplayMode   egg_datetime_get_display_mode      (EggDateTime *edt);
+
+void         egg_datetime_set_clamp_date     (EggDateTime *edt, GDateYear minyear, GDateMonth minmonth, GDateDay minday, GDateYear maxyear, GDateMonth maxmonth, GDateDay maxday);
+void         egg_datetime_set_clamp_time     (EggDateTime *edt, guint8 minhour, guint8 minminute, guint8 minsecond, guint8 maxhour, guint8 maxminute, guint8 maxsecond);
+void         egg_datetime_set_clamp_time_t      (EggDateTime *edt);
+void         egg_datetime_get_clamp_date     (EggDateTime *edt, GDateYear *minyear, GDateMonth *minmonth, GDateDay *minday, GDateYear *maxyear, GDateMonth *maxmonth, GDateDay *maxday);
+void         egg_datetime_get_clamp_time     (EggDateTime *edt, guint8 *minhour, guint8 *minminute, guint8 *minsecond, guint8 *maxhour, guint8 *maxminute, guint8 *maxsecond);
+
+PangoLayout    *egg_datetime_get_date_layout    (EggDateTime *edt);
+PangoLayout    *egg_datetime_get_time_layout    (EggDateTime *edt);
+
+G_END_DECLS
+
+#endif /* __EGG_DATETIME_H__ */

Added: trunk/libegg/log
==============================================================================
--- (empty file)
+++ trunk/libegg/log	Sun May  4 20:22:27 2008
@@ -0,0 +1,3 @@
+if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGETTEXT_PACKAGE=NULL    -g -O2 -g -O0 -Wall -MT libeggdatetime_la-egg-datetime.lo -MD -MP -MF ".deps/libeggdatetime_la-egg-datetime.Tpo" -c -o libeggdatetime_la-egg-datetime.lo `test -f 'egg-datetime.c' || echo './'`egg-datetime.c; \
+	then mv -f ".deps/libeggdatetime_la-egg-datetime.Tpo" ".deps/libeggdatetime_la-egg-datetime.Plo"; else rm -f ".deps/libeggdatetime_la-egg-datetime.Tpo"; exit 1; fi
+ gcc -DHAVE_CONFIG_H -I. -I. -I.. -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DG_DISABLE_DEPRECATED -DGETTEXT_PACKAGE=NULL -g -O2 -g -O0 -Wall -MT libeggdatetime_la-egg-datetime.lo -MD -MP -MF .deps/libeggdatetime_la-egg-datetime.Tpo -c egg-datetime.c  -fPIC -DPIC -o .libs/libeggdatetime_la-egg-datetime.o

Modified: trunk/libseahorse/seahorse-context.c
==============================================================================
--- trunk/libseahorse/seahorse-context.c	(original)
+++ trunk/libseahorse/seahorse-context.c	Sun May  4 20:22:27 2008
@@ -21,9 +21,10 @@
  */
 
 #include "config.h"
+
 #include <stdlib.h>
+#include <string.h>
 #include <libintl.h>
-#include <gnome.h>
 
 #include "seahorse-context.h"
 #include "seahorse-marshal.h"

Modified: trunk/libseahorse/seahorse-dns-sd.c
==============================================================================
--- trunk/libseahorse/seahorse-dns-sd.c	(original)
+++ trunk/libseahorse/seahorse-dns-sd.c	Sun May  4 20:22:27 2008
@@ -21,8 +21,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
-
 #ifdef WITH_SHARING 
 #include <avahi-client/client.h>
 #include <avahi-client/lookup.h>

Modified: trunk/libseahorse/seahorse-key-model.c
==============================================================================
--- trunk/libseahorse/seahorse-key-model.c	(original)
+++ trunk/libseahorse/seahorse-key-model.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
  
 #include "config.h"
-#include <gnome.h>
+
+#include <string.h>
 
 #include "seahorse-key-model.h"
 #include "seahorse-marshal.h"

Modified: trunk/libseahorse/seahorse-key-source.c
==============================================================================
--- trunk/libseahorse/seahorse-key-source.c	(original)
+++ trunk/libseahorse/seahorse-key-source.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,6 @@
  */
  
 #include "config.h"
-#include <gnome.h>
 
 #include "seahorse-key-source.h"
 #include "seahorse-marshal.h"
@@ -202,7 +201,7 @@
 	SeahorseOperation *op;
     	gboolean ret;
 
-	g_return_val_if_fail (G_IS_INPUT_STREAM (input), NULL);
+	g_return_val_if_fail (G_IS_INPUT_STREAM (input), FALSE);
 
 	op = seahorse_key_source_import (sksrc, input);
 	g_return_val_if_fail (op != NULL, FALSE);
@@ -310,7 +309,6 @@
 	SeahorseOperation *op;
 	SeahorseKey *skey;
 	GList *keys = NULL;
-	gboolean owned = FALSE;
 	GSList *l;
     
 	g_return_val_if_fail (SEAHORSE_IS_KEY_SOURCE (sksrc), NULL);

Modified: trunk/libseahorse/seahorse-key.c
==============================================================================
--- trunk/libseahorse/seahorse-key.c	(original)
+++ trunk/libseahorse/seahorse-key.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,7 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <gnome.h>
+#include <string.h>
 
 #include "seahorse-key.h"
 #include "seahorse-context.h"

Modified: trunk/libseahorse/seahorse-keyserver-control.c
==============================================================================
--- trunk/libseahorse/seahorse-keyserver-control.c	(original)
+++ trunk/libseahorse/seahorse-keyserver-control.c	Sun May  4 20:22:27 2008
@@ -292,7 +292,7 @@
                                            COL_TEXT, keyserver,
                                            COL_INFO, OPTION_KEYSERVER,
                                            -1);
-        if (chosen && strcmp (chosen, keyserver) == 0) {
+        if (chosen && g_strcmp0 (chosen, keyserver) == 0) {
             chosen_iter = iter;
             chosen_iter_set = TRUE;
         }

Modified: trunk/libseahorse/seahorse-notification.c
==============================================================================
--- trunk/libseahorse/seahorse-notification.c	(original)
+++ trunk/libseahorse/seahorse-notification.c	Sun May  4 20:22:27 2008
@@ -21,8 +21,13 @@
  
 #include "config.h"
 
+#include <string.h>
+#include <libintl.h>
+
 #include <gtk/gtk.h>
+
 #include <glib.h>
+#include <glib/gi18n.h>
 
 #include "seahorse-libdialogs.h"
 #include "seahorse-util.h"

Modified: trunk/libseahorse/seahorse-operation.c
==============================================================================
--- trunk/libseahorse/seahorse-operation.c	(original)
+++ trunk/libseahorse/seahorse-operation.c	Sun May  4 20:22:27 2008
@@ -18,10 +18,8 @@
  * 59 Temple Place, Suite 330,
  * Boston, MA 02111-1307, USA.
  */
- 
-#include <gnome.h>
-
 #include "config.h"
+
 #include "seahorse-util.h"
 #include "seahorse-marshal.h"
 #include "seahorse-operation.h"

Modified: trunk/libseahorse/seahorse-operation.h
==============================================================================
--- trunk/libseahorse/seahorse-operation.h	(original)
+++ trunk/libseahorse/seahorse-operation.h	Sun May  4 20:22:27 2008
@@ -47,7 +47,7 @@
 #ifndef __SEAHORSE_OPERATION_H__
 #define __SEAHORSE_OPERATION_H__
 
-#include <gnome.h>
+#include <glib-object.h>
 
 #define SEAHORSE_TYPE_OPERATION            (seahorse_operation_get_type ())
 #define SEAHORSE_OPERATION(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), SEAHORSE_TYPE_OPERATION, SeahorseOperation))

Modified: trunk/libseahorse/seahorse-passphrase.c
==============================================================================
--- trunk/libseahorse/seahorse-passphrase.c	(original)
+++ trunk/libseahorse/seahorse-passphrase.c	Sun May  4 20:22:27 2008
@@ -36,8 +36,13 @@
 #include <unistd.h>
 #include <syslog.h>
 #include <fcntl.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#include <gdk/gdkkeysyms.h>
 
-#include <gnome.h>
 #include <glade/glade-xml.h>
 
 #include "seahorse-libdialogs.h"

Modified: trunk/libseahorse/seahorse-prefs-keyrings.c
==============================================================================
--- trunk/libseahorse/seahorse-prefs-keyrings.c	(original)
+++ trunk/libseahorse/seahorse-prefs-keyrings.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,9 @@
  * Boston, MA 02111-1307, USA.
  */
 #include <config.h>
-#include <gnome.h>
+
+#include <glib/gi18n.h>
+
 #include <gnome-keyring.h>
 
 #include "seahorse-context.h"
@@ -155,7 +157,7 @@
         gtk_tree_model_get (model, &iter, KEYRING_NAME, &t, -1);
         g_assert (t);
         
-        match = (strcmp (t, keyring) == 0);
+        match = (g_strcmp0 (t, keyring) == 0);
         g_free (t);
          
         if (match) {
@@ -194,14 +196,14 @@
     
         /* We don't list the 'session' keyring */
         name = (gchar*)list->data;
-        if (strcmp (name, "session") == 0)
+        if (g_strcmp0 (name, "session") == 0)
             continue;
 
         if (!valid)
             gtk_list_store_append (store, &iter);
 
         /* Figure out the name and markup */
-        if (strcmp (name, "login") == 0)
+        if (g_strcmp0 (name, "login") == 0)
             comments = _("<i>Automatically unlocked when user logs in.</i>");
         else
             comments = "";

Modified: trunk/libseahorse/seahorse-prefs.c
==============================================================================
--- trunk/libseahorse/seahorse-prefs.c	(original)
+++ trunk/libseahorse/seahorse-prefs.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,8 @@
  * Boston, MA 02111-1307, USA.
  */
 #include "config.h"
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-prefs.h"
 #include "seahorse-util.h"
@@ -481,7 +482,6 @@
 seahorse_prefs_new (GtkWindow *parent)
 {
     SeahorseWidget *swidget;
-    GtkWidget *widget;
     
     swidget = seahorse_widget_new ("prefs", parent);
     

Modified: trunk/libseahorse/seahorse-transfer-operation.c
==============================================================================
--- trunk/libseahorse/seahorse-transfer-operation.c	(original)
+++ trunk/libseahorse/seahorse-transfer-operation.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
  
 #include "config.h"
-#include <gnome.h>
+
+#include <stdlib.h>
 
 #include "seahorse-transfer-operation.h"
 #include "seahorse-util.h"

Modified: trunk/libseahorse/seahorse-unix-signal.c
==============================================================================
--- trunk/libseahorse/seahorse-unix-signal.c	(original)
+++ trunk/libseahorse/seahorse-unix-signal.c	Sun May  4 20:22:27 2008
@@ -29,8 +29,9 @@
 #include <unistd.h>
 #include <syslog.h>
 #include <fcntl.h>
+#include <string.h>
+#include <errno.h>
 
-#include <gnome.h>
 #include "seahorse-unix-signal.h"
 
 #define MAX_SIGNAL 32

Modified: trunk/libseahorse/seahorse-unknown-key.c
==============================================================================
--- trunk/libseahorse/seahorse-unknown-key.c	(original)
+++ trunk/libseahorse/seahorse-unknown-key.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-unknown-key.h"
 #include "seahorse-unknown-source.h"

Modified: trunk/libseahorse/seahorse-unknown-source.c
==============================================================================
--- trunk/libseahorse/seahorse-unknown-source.c	(original)
+++ trunk/libseahorse/seahorse-unknown-source.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-context.h"
 #include "seahorse-unknown-source.h"

Modified: trunk/libseahorse/seahorse-util.c
==============================================================================
--- trunk/libseahorse/seahorse-util.c	(original)
+++ trunk/libseahorse/seahorse-util.c	Sun May  4 20:22:27 2008
@@ -45,6 +45,8 @@
 #include <stdio.h>
 #include <unistd.h>
 #include <string.h>
+#include <errno.h>
+#include <glib/gi18n.h>
 
 static const gchar *bad_filename_chars = "/\\<>|";
 

Modified: trunk/libseahorse/seahorse-validity.c
==============================================================================
--- trunk/libseahorse/seahorse-validity.c	(original)
+++ trunk/libseahorse/seahorse-validity.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,8 @@
  * Boston, MA 02111-1307, USA.
  */
 #include <config.h>
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-validity.h"
 

Modified: trunk/libseahorse/seahorse-widget.c
==============================================================================
--- trunk/libseahorse/seahorse-widget.c	(original)
+++ trunk/libseahorse/seahorse-widget.c	Sun May  4 20:22:27 2008
@@ -21,10 +21,17 @@
  */
 
 #include <config.h>
-#include <gnome.h>
+
+#include <string.h>
+
+#include <glib/gi18n.h>
+
 #include <glade/glade.h>
 #include <glade/glade-build.h>
 
+#include <libgnomevfs/gnome-vfs.h>
+#include <libgnomevfs/gnome-vfs-result.h>
+
 #include "seahorse-widget.h"
 #include "seahorse-gtkstock.h"
 
@@ -131,7 +138,7 @@
 	/* Remove widget from hash and destroy hash if empty */
     if (widgets) {
     	g_hash_table_remove (widgets, swidget->name);
-    	if (g_hash_table_size == 0) {
+    	if (g_hash_table_size (widgets) == 0) {
     		g_hash_table_destroy (widgets);
     		widgets = NULL;
     	}
@@ -310,25 +317,29 @@
 void
 seahorse_widget_show_help (SeahorseWidget *swidget)
 {
-    GError *err = NULL;
+    gchar *document = NULL;
+    GnomeVFSResult error;
 
     if (g_str_equal (swidget->name, "key-manager") || 
-        g_str_equal (swidget->name, "keyserver-results"))
-        gnome_help_display_with_doc_id (NULL, PACKAGE, PACKAGE, "introduction", &err);
-    else
-       gnome_help_display_with_doc_id (NULL, PACKAGE, PACKAGE, swidget->name, &err);
+        g_str_equal (swidget->name, "keyserver-results")) {
+        document = g_strdup ("ghelp:" PACKAGE "?introduction");
+    } else {
+        document = g_strdup_printf ("ghelp:" PACKAGE "?%s", swidget->name);
+    }
+
+    error = gnome_vfs_url_show (document);
+    g_free (document);
 
-    if (err != NULL) {
+    if (error != GNOME_VFS_OK) {
         GtkWidget *dialog;
 
         dialog = gtk_message_dialog_new (GTK_WINDOW (seahorse_widget_get_top (swidget)), GTK_DIALOG_MODAL, 
                                          GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, 
                                          _("Could not display help: %s"),
-                                         err->message);
+                                         gnome_vfs_result_to_string (error));
         g_signal_connect (G_OBJECT (dialog), "response",
                           G_CALLBACK (gtk_widget_destroy), NULL);
         gtk_widget_show (dialog);
-        g_error_free (err);
     }
 }
 

Modified: trunk/pgp/Makefile.am
==============================================================================
--- trunk/pgp/Makefile.am	(original)
+++ trunk/pgp/Makefile.am	Sun May  4 20:22:27 2008
@@ -12,6 +12,7 @@
 	-DSEAHORSE_GLADEDIR=\""$(gladedir)"\" \
 	-DLOCALEDIR=\"$(localedir)\" \
 	-DEXECDIR=\""$(seahorselibexecbindir)"\" \
+	-DLDAP_DEPRECATED \
 	-DLIBCRYPTUI_API_SUBJECT_TO_CHANGE 
 
 noinst_LTLIBRARIES = libseahorse-pgp.la
@@ -59,4 +60,4 @@
 	seahorse-signer.glade
 
 EXTRA_DIST = $(glade_DATA)
-	
\ No newline at end of file
+	

Modified: trunk/pgp/seahorse-gpg-options.c
==============================================================================
--- trunk/pgp/seahorse-gpg-options.c	(original)
+++ trunk/pgp/seahorse-gpg-options.c	Sun May  4 20:22:27 2008
@@ -28,7 +28,8 @@
 #include <string.h>
 #include <errno.h>
 #include <fcntl.h>
-
+#include <unistd.h>
+#include <sys/stat.h>
 
 #include "seahorse-util.h"
 #include "seahorse-context.h"

Modified: trunk/pgp/seahorse-hkp-source.c
==============================================================================
--- trunk/pgp/seahorse-hkp-source.c	(original)
+++ trunk/pgp/seahorse-hkp-source.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,12 @@
  * Boston, MA 02111-1307, USA.
  */
  
-#include "config.h"
+#include <config.h>
+ 
+#include <stdlib.h>
+#include <string.h>
+ 
+#include <glib/gi18n.h>
 
 #include "seahorse-hkp-source.h"
 

Modified: trunk/pgp/seahorse-ldap-source.c
==============================================================================
--- trunk/pgp/seahorse-ldap-source.c	(original)
+++ trunk/pgp/seahorse-ldap-source.c	Sun May  4 20:22:27 2008
@@ -21,6 +21,12 @@
 
 #include "config.h"
 
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include <glib/gi18n.h>
+
 #include "seahorse-ldap-source.h"
 
 #include "seahorse-gpgmex.h"

Modified: trunk/pgp/seahorse-pgp-key-op.c
==============================================================================
--- trunk/pgp/seahorse-pgp-key-op.c	(original)
+++ trunk/pgp/seahorse-pgp-key-op.c	Sun May  4 20:22:27 2008
@@ -22,7 +22,12 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
 #include <glib/gstdio.h>
 
 #include "seahorse-util.h"

Modified: trunk/pgp/seahorse-pgp-key.c
==============================================================================
--- trunk/pgp/seahorse-pgp-key.c	(original)
+++ trunk/pgp/seahorse-pgp-key.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,10 @@
  * Boston, MA 02111-1307, USA.
  */
 #include <config.h>
-#include <gnome.h>
+
+#include <string.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-context.h"
 #include "seahorse-key-source.h"

Modified: trunk/pgp/seahorse-pgp-operation.c
==============================================================================
--- trunk/pgp/seahorse-pgp-operation.c	(original)
+++ trunk/pgp/seahorse-pgp-operation.c	Sun May  4 20:22:27 2008
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+
 #include "seahorse-util.h"
 
 #include "pgp/seahorse-gpgmex.h"

Modified: trunk/pgp/seahorse-pgp-source.c
==============================================================================
--- trunk/pgp/seahorse-pgp-source.c	(original)
+++ trunk/pgp/seahorse-pgp-source.c	Sun May  4 20:22:27 2008
@@ -21,6 +21,8 @@
 
 #include "config.h"
 
+#include <glib/gi18n.h>
+#include <string.h>
 #include "seahorse-pgp-source.h"
 
 #include "seahorse-gpgme-io.h"

Modified: trunk/pgp/seahorse-server-source.c
==============================================================================
--- trunk/pgp/seahorse-server-source.c	(original)
+++ trunk/pgp/seahorse-server-source.c	Sun May  4 20:22:27 2008
@@ -19,9 +19,12 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <stdlib.h>
 #include <config.h>
-#include <gnome.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-gpgmex.h"
 #include "seahorse-operation.h"

Modified: trunk/pgp/seahorse-signer.c
==============================================================================
--- trunk/pgp/seahorse-signer.c	(original)
+++ trunk/pgp/seahorse-signer.c	Sun May  4 20:22:27 2008
@@ -19,9 +19,11 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <stdlib.h>
 #include <config.h>
-#include <gnome.h>
+
+#include <stdlib.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-operation.h"
 #include "seahorse-progress.h"
@@ -33,6 +35,7 @@
 #include "seahorse-util.h"
 
 #include "pgp/seahorse-pgp-key.h"
+#include "pgp/seahorse-pgp-keysets.h"
 
 SeahorsePGPKey*
 seahorse_signer_get (GtkWindow *parent)

Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am	(original)
+++ trunk/src/Makefile.am	Sun May  4 20:22:27 2008
@@ -5,6 +5,7 @@
 
 INCLUDES = -I$(top_builddir) \
 	-I$(top_srcdir) \
+	-I$(top_srcdir)/libegg \
 	-I$(top_srcdir)/libcryptui \
 	-I$(top_srcdir)/libseahorse \
 	$(SEAHORSE_CFLAGS) \
@@ -58,6 +59,7 @@
 	$(top_builddir)/gkr/libseahorse-gkr.la \
 	$(top_builddir)/common/libseahorse-common.la \  
 	$(top_builddir)/libcryptui/libcryptui.la \
+	$(top_builddir)/libegg/libeggdatetime.la \
 	$(SEAHORSE_LIBS)
 
 glade_DATA = \

Modified: trunk/src/main.c
==============================================================================
--- trunk/src/main.c	(original)
+++ trunk/src/main.c	Sun May  4 20:22:27 2008
@@ -42,8 +42,10 @@
 
 #include "gkr/seahorse-gkr.h"
 
-#include <gnome.h>
 #include <locale.h>
+#include <stdlib.h>
+  
+#include <glib/gi18n.h>
 
 /* Initializes context and preferences, then loads key manager */
 int
@@ -68,9 +70,7 @@
     gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
 #endif
 
-    gnome_program_init(PACKAGE, VERSION, LIBGNOMEUI_MODULE, argc, argv,
-                       GNOME_PARAM_HUMAN_READABLE_NAME, _("Encryption Key Manager"),
-                       GNOME_PARAM_APP_DATADIR, DATA_DIR, NULL);
+    gtk_init_with_args (&argc, &argv, _("Encryption Key Manager"), NULL, GETTEXT_PACKAGE, NULL);
 
     /* Insert Icons into Stock */ 
     seahorse_gtkstock_init ();

Modified: trunk/src/seahorse-add-subkey.c
==============================================================================
--- trunk/src/seahorse-add-subkey.c	(original)
+++ trunk/src/seahorse-add-subkey.c	Sun May  4 20:22:27 2008
@@ -20,6 +20,10 @@
  */
 
 #include "config.h" 
+
+#include <glib/gi18n.h>
+
+#include "egg-datetime.h"
  
 #include "seahorse-key-dialogs.h"
 #include "seahorse-key-widget.h"
@@ -28,7 +32,6 @@
 #include "pgp/seahorse-pgp-dialogs.h"
 #include "pgp/seahorse-pgp-key-op.h"
 
-#define EXPIRES "expires"
 #define LENGTH "length"
 
 enum {
@@ -69,11 +72,38 @@
 	}
 }
 
+static GtkWidget *
+_seahorse_add_subkey_get_expires (SeahorseWidget *swidget)
+{
+    GtkWidget *widget;
+    GList *children;
+
+    g_return_val_if_fail (swidget != NULL, NULL);
+
+    widget = seahorse_widget_get_widget (swidget, "table1");
+    g_return_val_if_fail (widget != NULL, NULL);
+
+    children = gtk_container_get_children (GTK_CONTAINER (widget));
+    g_return_val_if_fail (children, NULL);
+
+    /* The fifth element should be expires */
+    widget = g_list_nth_data (children, 5);
+
+    g_list_free (children);
+
+    return widget;
+}
+
 static void
 never_expires_toggled (GtkToggleButton *togglebutton, SeahorseWidget *swidget)
 {
-	gtk_widget_set_sensitive (glade_xml_get_widget (swidget->xml, EXPIRES),
-		!gtk_toggle_button_get_active (togglebutton));
+    GtkWidget *widget;
+
+    widget = _seahorse_add_subkey_get_expires (swidget);
+    g_return_if_fail (widget);
+
+    gtk_widget_set_sensitive (GTK_WIDGET (widget),
+                              !gtk_toggle_button_get_active (togglebutton));
 }
 
 static void
@@ -105,9 +135,12 @@
 	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (
 	glade_xml_get_widget (swidget->xml, "never_expires"))))
 		expires = 0;
-	else
-		expires = gnome_date_edit_get_time (GNOME_DATE_EDIT (
-			glade_xml_get_widget (swidget->xml, EXPIRES)));
+	else {
+        widget = _seahorse_add_subkey_get_expires (swidget);
+        g_return_if_fail (widget);
+
+        egg_datetime_get_as_time_t (EGG_DATETIME (widget), &expires);
+   }
 	
 	switch (type) {
 		case 0:
@@ -145,6 +178,7 @@
     GtkTreeModel *model;
     GtkTreeIter iter;
     GtkCellRenderer *renderer;
+    GtkWidget *widget;
 	
 	swidget = seahorse_key_widget_new ("add-subkey", parent, SEAHORSE_KEY (pkey));
 	g_return_if_fail (swidget != NULL);
@@ -198,4 +232,8 @@
 		G_CALLBACK (never_expires_toggled), swidget);
 	glade_xml_signal_connect_data (swidget->xml, "type_changed",
 		G_CALLBACK (type_changed), swidget);
+
+    widget = seahorse_widget_get_widget (swidget, "table1");
+    g_return_if_fail (widget != NULL);
+    gtk_table_attach_defaults (GTK_TABLE (widget), egg_datetime_new (), 1, 2, 2, 3);
 }

Modified: trunk/src/seahorse-add-subkey.glade
==============================================================================
--- trunk/src/seahorse-add-subkey.glade	(original)
+++ trunk/src/seahorse-add-subkey.glade	Sun May  4 20:22:27 2008
@@ -2,7 +2,6 @@
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
 <!--*- mode: xml -*-->
 <glade-interface>
-  <requires lib="gnome"/>
   <widget class="GtkDialog" id="add-subkey">
     <property name="visible">True</property>
     <property name="border_width">5</property>
@@ -22,50 +21,32 @@
             <property name="column_spacing">12</property>
             <property name="row_spacing">6</property>
             <child>
-              <widget class="GtkComboBox" id="type">
-                <property name="visible">True</property>
-                <signal name="changed" handler="type_changed"/>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">3</property>
-                <property name="y_options"></property>
-              </packing>
+              <placeholder/>
             </child>
             <child>
-              <widget class="GtkSpinButton" id="length">
+              <widget class="GtkLabel" id="label1">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="adjustment">1024 768 1024 32 128 128</property>
-                <property name="climb_rate">128</property>
-                <property name="snap_to_ticks">True</property>
-                <property name="numeric">True</property>
-                <property name="tooltip" translatable="yes">Length of Key</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Key _Type:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">type</property>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">3</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkCheckButton" id="never_expires">
+              <widget class="GtkLabel" id="label2">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="label" translatable="yes">Never E_xpires</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">Key _Length:</property>
                 <property name="use_underline">True</property>
-                <property name="active">True</property>
-                <property name="draw_indicator">True</property>
-                <property name="tooltip" translatable="yes">If key never expires</property>
-                <signal name="toggled" handler="never_expires_toggled"/>
+                <property name="mnemonic_widget">length</property>
               </widget>
               <packing>
-                <property name="left_attach">2</property>
-                <property name="right_attach">3</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
                 <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
@@ -84,44 +65,52 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeDateEdit" id="expires">
+              <widget class="GtkCheckButton" id="never_expires">
                 <property name="visible">True</property>
-                <property name="sensitive">False</property>
-                <property name="dateedit_flags"></property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">If key never expires</property>
+                <property name="label" translatable="yes">Never E_xpires</property>
+                <property name="use_underline">True</property>
+                <property name="response_id">0</property>
+                <property name="active">True</property>
+                <property name="draw_indicator">True</property>
+                <signal name="toggled" handler="never_expires_toggled"/>
               </widget>
               <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
                 <property name="top_attach">2</property>
                 <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label2">
+              <widget class="GtkSpinButton" id="length">
                 <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">Key _Length:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">length</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Length of Key</property>
+                <property name="adjustment">1024 768 1024 32 128 128</property>
+                <property name="climb_rate">128</property>
+                <property name="snap_to_ticks">True</property>
+                <property name="numeric">True</property>
               </widget>
               <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">3</property>
                 <property name="top_attach">1</property>
                 <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
                 <property name="y_options"></property>
               </packing>
             </child>
             <child>
-              <widget class="GtkLabel" id="label1">
+              <widget class="GtkComboBox" id="type">
                 <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">Key _Type:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">type</property>
+                <signal name="changed" handler="type_changed"/>
               </widget>
               <packing>
-                <property name="x_options">GTK_FILL</property>
+                <property name="left_attach">1</property>
+                <property name="right_attach">3</property>
                 <property name="y_options"></property>
               </packing>
             </child>
@@ -165,9 +154,9 @@
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
                 <property name="has_default">True</property>
+                <property name="tooltip" translatable="yes">Generate a new subkey</property>
                 <property name="label">gtk-ok</property>
                 <property name="use_stock">True</property>
-                <property name="tooltip" translatable="yes">Generate a new subkey</property>
                 <property name="response_id">-5</property>
                 <signal name="clicked" handler="ok_clicked"/>
               </widget>

Modified: trunk/src/seahorse-add-uid.c
==============================================================================
--- trunk/src/seahorse-add-uid.c	(original)
+++ trunk/src/seahorse-add-uid.c	Sun May  4 20:22:27 2008
@@ -20,6 +20,10 @@
  */
 
 #include "config.h" 
+
+#include <string.h>
+
+#include <glib/gi18n.h>
  
 #include "seahorse-key-dialogs.h"
 #include "seahorse-key-widget.h"

Modified: trunk/src/seahorse-delete.c
==============================================================================
--- trunk/src/seahorse-delete.c	(original)
+++ trunk/src/seahorse-delete.c	Sun May  4 20:22:27 2008
@@ -21,6 +21,8 @@
 
 #include "config.h"
 
+#include <glib/gi18n.h>
+
 #include "seahorse-windows.h"
 #include "seahorse-util.h"
 

Modified: trunk/src/seahorse-expires.c
==============================================================================
--- trunk/src/seahorse-expires.c	(original)
+++ trunk/src/seahorse-expires.c	Sun May  4 20:22:27 2008
@@ -20,6 +20,10 @@
  */
  
 #include "config.h"
+
+#include <string.h>
+
+#include <glib/gi18n.h>
  
 #include "seahorse-key-dialogs.h"
 #include "seahorse-key-widget.h"

Modified: trunk/src/seahorse-generate-select.c
==============================================================================
--- trunk/src/seahorse-generate-select.c	(original)
+++ trunk/src/seahorse-generate-select.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-widget.h"
 #include "seahorse-util.h"

Modified: trunk/src/seahorse-gkeyring-item-properties.c
==============================================================================
--- trunk/src/seahorse-gkeyring-item-properties.c	(original)
+++ trunk/src/seahorse-gkeyring-item-properties.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,8 @@
  * Boston, MA 02111-1307, USA.
  */
 #include <config.h>
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-key-widget.h"
 #include "seahorse-util.h"

Modified: trunk/src/seahorse-key-manager-store.c
==============================================================================
--- trunk/src/seahorse-key-manager-store.c	(original)
+++ trunk/src/seahorse-key-manager-store.c	Sun May  4 20:22:27 2008
@@ -21,7 +21,11 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <string.h>
+#include <unistd.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-key-manager-store.h"
 #include "seahorse-preferences.h"

Modified: trunk/src/seahorse-key-manager.c
==============================================================================
--- trunk/src/seahorse-key-manager.c	(original)
+++ trunk/src/seahorse-key-manager.c	Sun May  4 20:22:27 2008
@@ -21,7 +21,11 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <string.h>
+
+#include <glib/gi18n.h>
+
 #include <gconf/gconf-client.h>
 
 #include "seahorse-windows.h"
@@ -832,9 +836,10 @@
                                            const gchar *url,
                                            gpointer data)
 {
-    gnome_url_show (url, NULL);
+    g_app_info_launch_default_for_uri (url, NULL, NULL);
 }
 
+
 /* Shows about dialog */
 static void
 about_activate (GtkWidget *widget, SeahorseWidget *swidget)
@@ -1075,12 +1080,51 @@
     g_object_set (skstore, "filter", text, NULL);
 }
 
+static GtkWidget *
+_seahorse_get_manager_get_filter (SeahorseWidget *swidget)
+{
+    GtkWidget *widget = NULL;
+    GList *children = NULL;
+    gint items = 0;
+
+    widget = seahorse_widget_get_widget (swidget, "toolbar-placeholder");
+    g_return_val_if_fail (widget, NULL);
+
+    children = gtk_container_get_children (GTK_CONTAINER (widget));
+    g_return_val_if_fail (children, NULL);
+
+    /* Toolbar is the first (and only) widget */
+    widget = g_list_nth_data (children, 0);
+    g_list_free (children); children = NULL;
+
+    items = gtk_toolbar_get_n_items (GTK_TOOLBAR (widget));
+    widget = GTK_WIDGET (gtk_toolbar_get_nth_item (GTK_TOOLBAR (widget), items - 1));
+
+    children = gtk_container_get_children (GTK_CONTAINER (widget));
+    g_return_val_if_fail (children, NULL);
+
+    /* hbox */
+    widget = g_list_nth_data (children, 0);
+    g_list_free (children); children = NULL;
+
+    children = gtk_container_get_children (GTK_CONTAINER (widget));
+    g_return_val_if_fail (children, NULL);
+
+    /* the 2nd item is the entry */
+    widget = g_list_nth_data (children, 1);
+    g_return_val_if_fail (widget, NULL);
+
+    g_list_free (children); children = NULL;
+
+    return widget;
+}
+
 /* Clear filter when the tab changes */
 static void
 tab_changed (GtkWidget *widget, GtkNotebookPage *page, guint page_num, 
              SeahorseWidget *swidget)
 {
-    GtkWidget *entry = glade_xml_get_widget (swidget->xml, "filter");
+    GtkWidget *entry = _seahorse_get_manager_get_filter (swidget);
     g_return_if_fail (entry != NULL);
     gtk_entry_set_text (GTK_ENTRY (entry), "");
     
@@ -1282,8 +1326,8 @@
     g_object_set_data_full (G_OBJECT (view), "key-store", skstore, g_object_unref);
     
     /* For the filtering */
-    glade_xml_signal_connect_data(swidget->xml, "on_filter_changed",
-                                  G_CALLBACK(filter_changed), skstore);
+    g_signal_connect (_seahorse_get_manager_get_filter (swidget), "changed",
+                      G_CALLBACK (filter_changed), skstore);
 }
 
 GtkWindow* 
@@ -1296,7 +1340,10 @@
     GtkActionGroup *actions;
     GtkAction *action;
     GtkTargetList *targets;
-    
+    GtkBox *hbox = NULL;
+    GList *children = NULL;
+    GtkToolItem *item = NULL;
+
     swidget = seahorse_widget_new ("key-manager", NULL);
     win = GTK_WINDOW (seahorse_widget_get_top (swidget));
     
@@ -1373,9 +1420,9 @@
 		G_CALLBACK (row_activated), swidget);
 	glade_xml_signal_connect_data (swidget->xml, "key_list_button_pressed",
 		G_CALLBACK (key_list_button_pressed), swidget);
+
 	glade_xml_signal_connect_data (swidget->xml, "key_list_popup_menu",
 		G_CALLBACK (key_list_popup_menu), swidget);
-        
 	/* first time signals */
 	glade_xml_signal_connect_data (swidget->xml, "import_button_clicked",
 		G_CALLBACK (import_activate), swidget);
@@ -1385,19 +1432,57 @@
     /* The notebook */
     g_signal_connect_after (notebook, "switch-page", G_CALLBACK(tab_changed), swidget);
     
+    /* Set focus to the current key list */
+    w = GTK_WIDGET (get_current_view (swidget));
+    gtk_widget_grab_focus (w);
+
+    /* Flush updates */
+    gtk_ui_manager_ensure_update (swidget->ui);
+
+    w = glade_xml_get_widget (swidget->xml, "toolbar-placeholder");
+    g_assert (w);
+    
+    children = gtk_container_get_children (GTK_CONTAINER (w));
+    g_assert (children);
+    
+    /* The toolbar is the first (and only) element */
+    w = g_list_nth_data (children, 0);
+    g_assert (w);
+
+    /* Insert a separator to right align the filter */
+    item = gtk_separator_tool_item_new ();
+    gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (item), FALSE);
+    gtk_tool_item_set_expand (item, TRUE);
+    gtk_widget_show_all (GTK_WIDGET (item));
+
+    gtk_toolbar_insert (GTK_TOOLBAR (w), GTK_TOOL_ITEM (item), -1);
+
+    /* Insert a filter bar */
+    hbox = GTK_BOX (gtk_hbox_new (FALSE, 0));
+    gtk_box_pack_start (hbox, gtk_label_new (_("Filter:")), FALSE, TRUE, 3);
+    gtk_box_pack_start (hbox, gtk_entry_new (), FALSE, TRUE, 0);
+    gtk_box_pack_start (hbox, gtk_label_new (NULL), FALSE, FALSE, 0);
+    gtk_widget_show_all (GTK_WIDGET (hbox));
+
+    item = gtk_tool_item_new ();
+    gtk_container_add (GTK_CONTAINER (item), GTK_WIDGET (hbox));
+    gtk_widget_show_all (GTK_WIDGET (item));
+
+    gtk_toolbar_insert (GTK_TOOLBAR (w), GTK_TOOL_ITEM (item), -1);
+
     /* Initialize the tabs, and associate them up */
     initialize_tab (swidget, "pub-key-tab", TAB_PUBLIC, "pub-key-list", &pred_public);
     initialize_tab (swidget, "trust-key-tab", TAB_TRUSTED, "trust-key-list", &pred_trusted);
     initialize_tab (swidget, "sec-key-tab", TAB_PRIVATE, "sec-key-list", &pred_private);
     initialize_tab (swidget, "password-tab", TAB_PASSWORD, "password-list", &pred_password);
-    
+
     /* Set focus to the current key list */
     w = GTK_WIDGET (get_current_view (swidget));
     gtk_widget_grab_focus (w);
-    
+
     /* To avoid flicker */
     seahorse_widget_show (swidget);
-    
+
     /* Setup drops */
     gtk_drag_dest_set (GTK_WIDGET (win), GTK_DEST_DEFAULT_ALL, 
                        NULL, 0, GDK_ACTION_COPY);

Modified: trunk/src/seahorse-key-manager.glade
==============================================================================
--- trunk/src/seahorse-key-manager.glade	(original)
+++ trunk/src/seahorse-key-manager.glade	Sun May  4 20:22:27 2008
@@ -1,775 +1,389 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--Generated with glade3 3.4.3 on Mon Apr  7 20:14:23 2008 -->
 <glade-interface>
-<requires lib="gnome"/>
-<requires lib="bonobo"/>
-
-<widget class="GnomeApp" id="key-manager">
-  <property name="title" translatable="yes">Passwords and Encryption Keys</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="default_width">640</property>
-  <property name="default_height">476</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="enable_layout_config">True</property>
-  <signal name="delete_event" handler="quit_event" last_modification_time="Mon, 28 Oct 2002 05:11:14 GMT"/>
-
-  <child internal-child="dock">
-    <widget class="BonoboDock" id="bonobodock1">
-      <property name="visible">True</property>
-      <property name="allow_floating">True</property>
-
-      <child>
-	<widget class="BonoboDockItem" id="bonobodockitem1">
-	  <property name="visible">True</property>
-	  <property name="shadow_type">GTK_SHADOW_NONE</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="menu-placeholder">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<placeholder/>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="placement">BONOBO_DOCK_TOP</property>
-	  <property name="band">0</property>
-	  <property name="position">0</property>
-	  <property name="offset">0</property>
-	  <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="BonoboDockItem" id="tool_dock">
-	  <property name="visible">True</property>
-	  <property name="shadow_type">GTK_SHADOW_OUT</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox1">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkVBox" id="toolbar-placeholder">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <placeholder/>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox1">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Filter:</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_RIGHT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">1</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">1</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">3</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkEntry" id="filter">
-		      <property name="width_request">140</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text" translatable="yes"></property>
-		      <property name="has_frame">True</property>
-		      <property name="activates_default">False</property>
-		      <signal name="changed" handler="on_filter_changed" last_modification_time="Thu, 07 Oct 2004 02:48:36 GMT"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label2">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">2</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="placement">BONOBO_DOCK_TOP</property>
-	  <property name="band">1</property>
-	  <property name="position">0</property>
-	  <property name="offset">0</property>
-	  <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox1">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkNotebook" id="notebook">
-	      <property name="border_width">3</property>
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="show_tabs">True</property>
-	      <property name="show_border">True</property>
-	      <property name="tab_pos">GTK_POS_TOP</property>
-	      <property name="scrollable">False</property>
-	      <property name="enable_popup">False</property>
-	      <signal name="switch_page" handler="on_tab_changed" last_modification_time="Fri, 20 May 2005 23:25:06 GMT"/>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="sec-key-tab">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTreeView" id="sec-key-list">
-		      <property name="border_width">12</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="headers_visible">True</property>
-		      <property name="rules_hint">True</property>
-		      <property name="reorderable">False</property>
-		      <property name="enable_search">True</property>
-		      <property name="fixed_height_mode">False</property>
-		      <property name="hover_selection">False</property>
-		      <property name="hover_expand">False</property>
-		      <signal name="row_activated" handler="row_activated" last_modification_time="Thu, 07 Nov 2002 04:38:39 GMT"/>
-		      <signal name="button_press_event" handler="key_list_button_pressed" last_modification_time="Wed, 12 Feb 2003 02:29:41 GMT"/>
-		      <signal name="popup_menu" handler="key_list_popup_menu" last_modification_time="Sun, 02 Mar 2003 19:43:39 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label13">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">My _Personal Keys</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">3</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="trust-key-tab">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTreeView" id="trust-key-list">
-		      <property name="border_width">12</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="headers_visible">True</property>
-		      <property name="rules_hint">True</property>
-		      <property name="reorderable">False</property>
-		      <property name="enable_search">True</property>
-		      <property name="fixed_height_mode">False</property>
-		      <property name="hover_selection">False</property>
-		      <property name="hover_expand">False</property>
-		      <signal name="row_activated" handler="row_activated" last_modification_time="Thu, 07 Nov 2002 04:38:39 GMT"/>
-		      <signal name="button_press_event" handler="key_list_button_pressed" last_modification_time="Wed, 12 Feb 2003 02:29:41 GMT"/>
-		      <signal name="popup_menu" handler="key_list_popup_menu" last_modification_time="Sun, 02 Mar 2003 19:43:39 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label15">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Trusted Keys</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">3</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="pub-key-tab">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTreeView" id="pub-key-list">
-		      <property name="border_width">12</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="headers_visible">True</property>
-		      <property name="rules_hint">True</property>
-		      <property name="reorderable">False</property>
-		      <property name="enable_search">True</property>
-		      <property name="fixed_height_mode">False</property>
-		      <property name="hover_selection">False</property>
-		      <property name="hover_expand">False</property>
-		      <signal name="row_activated" handler="row_activated" last_modification_time="Thu, 07 Nov 2002 04:38:39 GMT"/>
-		      <signal name="button_press_event" handler="key_list_button_pressed" last_modification_time="Wed, 12 Feb 2003 02:29:41 GMT"/>
-		      <signal name="popup_menu" handler="key_list_popup_menu" last_modification_time="Sun, 02 Mar 2003 19:43:39 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label14">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">Other _Collected Keys</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">3</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkScrolledWindow" id="password-tab">
-		  <property name="border_width">3</property>
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTreeView" id="password-list">
-		      <property name="border_width">12</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="headers_visible">True</property>
-		      <property name="rules_hint">True</property>
-		      <property name="reorderable">False</property>
-		      <property name="enable_search">True</property>
-		      <property name="fixed_height_mode">False</property>
-		      <property name="hover_selection">False</property>
-		      <property name="hover_expand">False</property>
-		      <signal name="row_activated" handler="row_activated" last_modification_time="Thu, 07 Nov 2002 04:38:39 GMT"/>
-		      <signal name="button_press_event" handler="key_list_button_pressed" last_modification_time="Wed, 12 Feb 2003 02:29:41 GMT"/>
-		      <signal name="popup_menu" handler="key_list_popup_menu" last_modification_time="Sun, 02 Mar 2003 19:43:39 GMT"/>
-		    </widget>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label16">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Passwords</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">3</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkAlignment" id="alignment3">
-	      <property name="visible">True</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xscale">1</property>
-	      <property name="yscale">0</property>
-	      <property name="top_padding">0</property>
-	      <property name="bottom_padding">0</property>
-	      <property name="left_padding">0</property>
-	      <property name="right_padding">0</property>
-
-	      <child>
-		<widget class="GtkVBox" id="first-time-box">
-		  <property name="border_width">12</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label8">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;First time options:&lt;/b&gt;&lt;/big&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">6</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHSeparator" id="hseparator2">
-		      <property name="visible">True</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkTable" id="table3">
-		      <property name="border_width">6</property>
-		      <property name="visible">True</property>
-		      <property name="n_rows">3</property>
-		      <property name="n_columns">2</property>
-		      <property name="homogeneous">False</property>
-		      <property name="row_spacing">6</property>
-		      <property name="column_spacing">12</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label9">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">To get started with encryption you will need keys.</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">True</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">1</property>
-			  <property name="top_attach">0</property>
-			  <property name="bottom_attach">1</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkButton" id="help-button">
-			  <property name="visible">True</property>
-			  <property name="can_default">True</property>
-			  <property name="has_default">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="has_focus">True</property>
-			  <property name="label">gtk-help</property>
-			  <property name="use_stock">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <signal name="clicked" handler="help" last_modification_time="Tue, 26 Oct 2004 01:51:22 GMT"/>
-			</widget>
-			<packing>
-			  <property name="left_attach">1</property>
-			  <property name="right_attach">2</property>
-			  <property name="top_attach">0</property>
-			  <property name="bottom_attach">1</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label10">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Import existing keys from a file:</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">1</property>
-			  <property name="top_attach">1</property>
-			  <property name="bottom_attach">2</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkButton" id="import-button">
-			  <property name="visible">True</property>
-			  <property name="can_default">True</property>
-			  <property name="has_default">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="has_focus">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <signal name="clicked" handler="import_button_clicked" last_modification_time="Tue, 26 Oct 2004 01:53:24 GMT"/>
-
-			  <child>
-			    <widget class="GtkAlignment" id="alignment2">
-			      <property name="visible">True</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xscale">0</property>
-			      <property name="yscale">0</property>
-			      <property name="top_padding">0</property>
-			      <property name="bottom_padding">0</property>
-			      <property name="left_padding">0</property>
-			      <property name="right_padding">0</property>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox3">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">2</property>
-
-				  <child>
-				    <widget class="GtkImage" id="image1774">
-				      <property name="visible">True</property>
-				      <property name="stock">gtk-open</property>
-				      <property name="icon_size">4</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label11">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">_Import</property>
-				      <property name="use_underline">True</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				      <property name="width_chars">-1</property>
-				      <property name="single_line_mode">False</property>
-				      <property name="angle">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="left_attach">1</property>
-			  <property name="right_attach">2</property>
-			  <property name="top_attach">1</property>
-			  <property name="bottom_attach">2</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label12">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Generate a new key of your own: </property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="left_attach">0</property>
-			  <property name="right_attach">1</property>
-			  <property name="top_attach">2</property>
-			  <property name="bottom_attach">3</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkButton" id="new-button">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label">gtk-new</property>
-			  <property name="use_stock">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <signal name="clicked" handler="new_button_clicked" last_modification_time="Tue, 26 Oct 2004 01:53:14 GMT"/>
-			</widget>
-			<packing>
-			  <property name="left_attach">1</property>
-			  <property name="right_attach">2</property>
-			  <property name="top_attach">2</property>
-			  <property name="bottom_attach">3</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="status-bar-area">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkProgressBar" id="progress">
-		  <property name="visible">True</property>
-		  <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-		  <property name="fraction">0</property>
-		  <property name="pulse_step">0.10000000149</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkStatusbar" id="status">
-		  <property name="visible">True</property>
-		  <property name="has_resize_grip">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-      </child>
-    </widget>
-    <packing>
-      <property name="padding">0</property>
-      <property name="expand">True</property>
-      <property name="fill">True</property>
-    </packing>
-  </child>
-</widget>
-
+  <widget class="GtkWindow" id="key-manager">
+    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+    <child>
+      <widget class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <child>
+          <widget class="GtkVBox" id="menu-placeholder">
+            <property name="visible">True</property>
+            <child>
+              <placeholder/>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkVBox" id="toolbar-placeholder">
+            <property name="visible">True</property>
+            <child>
+              <placeholder/>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkNotebook" id="notebook">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="border_width">3</property>
+            <child>
+              <widget class="GtkScrolledWindow" id="sec-key-tab">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="border_width">3</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <child>
+                  <widget class="GtkTreeView" id="sec-key-list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">12</property>
+                    <property name="rules_hint">True</property>
+                    <signal name="popup_menu" handler="key_list_popup_menu"/>
+                    <signal name="button_press_event" handler="key_list_button_pressed"/>
+                    <signal name="row_activated" handler="row_activated"/>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label26">
+                <property name="visible">True</property>
+                <property name="xpad">3</property>
+                <property name="label" translatable="yes">My _Personal Keys</property>
+                <property name="use_underline">True</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="trust-key-tab">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="border_width">3</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <child>
+                  <widget class="GtkTreeView" id="trust-key-list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">12</property>
+                    <property name="rules_hint">True</property>
+                    <signal name="popup_menu" handler="key_list_popup_menu"/>
+                    <signal name="button_press_event" handler="key_list_button_pressed"/>
+                    <signal name="row_activated" handler="row_activated"/>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label27">
+                <property name="visible">True</property>
+                <property name="xpad">3</property>
+                <property name="label" translatable="yes">_Trusted Keys</property>
+                <property name="use_underline">True</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="pub-key-tab">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="border_width">3</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <child>
+                  <widget class="GtkTreeView" id="pub-key-list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">12</property>
+                    <property name="rules_hint">True</property>
+                    <signal name="popup_menu" handler="key_list_popup_menu"/>
+                    <signal name="button_press_event" handler="key_list_button_pressed"/>
+                    <signal name="row_activated" handler="row_activated"/>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label28">
+                <property name="visible">True</property>
+                <property name="xpad">3</property>
+                <property name="label" translatable="yes">Other _Collected Keys</property>
+                <property name="use_underline">True</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="password-tab">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="border_width">3</property>
+                <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <child>
+                  <widget class="GtkTreeView" id="password-list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="border_width">12</property>
+                    <property name="rules_hint">True</property>
+                    <signal name="popup_menu" handler="key_list_popup_menu"/>
+                    <signal name="button_press_event" handler="key_list_button_pressed"/>
+                    <signal name="row_activated" handler="row_activated"/>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">3</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label29">
+                <property name="visible">True</property>
+                <property name="xpad">3</property>
+                <property name="label" translatable="yes">_Passwords</property>
+                <property name="use_underline">True</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">3</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkAlignment" id="alignment5">
+            <property name="visible">True</property>
+            <property name="xalign">0</property>
+            <property name="yscale">0</property>
+            <child>
+              <widget class="GtkVBox" id="first-time-box">
+                <property name="border_width">12</property>
+                <property name="spacing">6</property>
+                <child>
+                  <widget class="GtkLabel" id="label17">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="xpad">6</property>
+                    <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;First time options:&lt;/b&gt;&lt;/big&gt;</property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkHSeparator" id="hseparator3">
+                    <property name="visible">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkTable" id="table2">
+                    <property name="visible">True</property>
+                    <property name="border_width">6</property>
+                    <property name="n_rows">3</property>
+                    <property name="n_columns">2</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">6</property>
+                    <child>
+                      <widget class="GtkButton" id="new-button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="label">gtk-new</property>
+                        <property name="use_stock">True</property>
+                        <property name="response_id">0</property>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label21">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Generate a new key of your own: </property>
+                      </widget>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkButton" id="import-button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="has_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
+                        <property name="response_id">0</property>
+                        <child>
+                          <widget class="GtkAlignment" id="alignment6">
+                            <property name="visible">True</property>
+                            <property name="xscale">0</property>
+                            <property name="yscale">0</property>
+                            <child>
+                              <widget class="GtkHBox" id="hbox4">
+                                <property name="visible">True</property>
+                                <property name="spacing">2</property>
+                                <child>
+                                  <widget class="GtkImage" id="image2">
+                                    <property name="visible">True</property>
+                                    <property name="stock">gtk-open</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkLabel" id="label20">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">_Import</property>
+                                    <property name="use_underline">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label19">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Import existing keys from a file:</property>
+                      </widget>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkButton" id="help-button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="has_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
+                        <property name="label">gtk-help</property>
+                        <property name="use_stock">True</property>
+                        <property name="response_id">0</property>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label18">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">To get started with encryption you will need keys.</property>
+                        <property name="wrap">True</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">3</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkHBox" id="status-bar-area">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkProgressBar" id="progress">
+                <property name="visible">True</property>
+                <property name="pulse_step">0.10000000149</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkStatusbar" id="status">
+                <property name="visible">True</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">4</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>

Modified: trunk/src/seahorse-key-properties.c
==============================================================================
--- trunk/src/seahorse-key-properties.c	(original)
+++ trunk/src/seahorse-key-properties.c	Sun May  4 20:22:27 2008
@@ -25,6 +25,10 @@
 
 #include "config.h"
 
+#include <string.h>
+  
+#include <glib/gi18n.h>
+
 #include "seahorse-key-dialogs.h"
 
 #include "seahorse-gconf.h"
@@ -88,7 +92,7 @@
     if (!GTK_IS_LABEL (widget))    
         label = gtk_button_get_label (GTK_BUTTON (widget));
     else
-        label = gtk_label_get_text (widget);
+        label = gtk_label_get_text (GTK_LABEL (widget));
         
     text = g_strdup_printf (label, str);
     
@@ -1400,25 +1404,6 @@
     }
 }
 
-static void
-trust_complete_toggled (GtkToggleButton *toggle, SeahorseWidget *swidget)
-{
-    SeahorseKey *skey;
-    guint trust;
-    gpgme_error_t err;
-    
-    skey = SEAHORSE_KEY_WIDGET (swidget)->skey;
-    
-    trust = gtk_toggle_button_get_active (toggle) ?
-            SEAHORSE_VALIDITY_FULL : SEAHORSE_VALIDITY_MARGINAL;
-    
-    if (seahorse_key_get_trust (skey) != trust) {
-        err = seahorse_pgp_key_op_set_trust (SEAHORSE_PGP_KEY (skey), trust);
-        if (err)
-        	seahorse_pgp_handle_gpgme_error (err, _("Unable to change trust"));
-    }
-}
-
 /* Is called whenever a signature key changes */
 static void
 trust_update_row (SeahorseKeyModel *skmodel, SeahorseKey *skey, 

Modified: trunk/src/seahorse-key-widget.c
==============================================================================
--- trunk/src/seahorse-key-widget.c	(original)
+++ trunk/src/seahorse-key-widget.c	Sun May  4 20:22:27 2008
@@ -19,8 +19,6 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <gnome.h>
-
 #include "seahorse-key-widget.h"
 
 #define PROPERTIES "key-properties"

Modified: trunk/src/seahorse-keyserver-results.c
==============================================================================
--- trunk/src/seahorse-keyserver-results.c	(original)
+++ trunk/src/seahorse-keyserver-results.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,10 @@
  */
 
 #include <config.h>
-#include <gnome.h>
+
+#include <string.h>
+ 
+#include <glib/gi18n.h>
 
 #include "seahorse-windows.h"
 #include "seahorse-widget.h"

Modified: trunk/src/seahorse-keyserver-search.c
==============================================================================
--- trunk/src/seahorse-keyserver-search.c	(original)
+++ trunk/src/seahorse-keyserver-search.c	Sun May  4 20:22:27 2008
@@ -19,7 +19,6 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <gnome.h>
 
 #include "seahorse-widget.h"
 #include "seahorse-util.h"

Modified: trunk/src/seahorse-keyserver-sync.c
==============================================================================
--- trunk/src/seahorse-keyserver-sync.c	(original)
+++ trunk/src/seahorse-keyserver-sync.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,8 @@
  */
 
 #include <config.h>
-#include <gnome.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-widget.h"
 #include "seahorse-util.h"

Modified: trunk/src/seahorse-pgp-generate.c
==============================================================================
--- trunk/src/seahorse-pgp-generate.c	(original)
+++ trunk/src/seahorse-pgp-generate.c	Sun May  4 20:22:27 2008
@@ -21,6 +21,13 @@
 
 #include "config.h"
 
+#include <time.h>
+#include <string.h>
+ 
+#include <glib/gi18n.h>
+ 
+#include "egg-datetime.h"
+
 #include "seahorse-widget.h"
 #include "seahorse-util.h"
 #include "seahorse-key-dialogs.h"
@@ -56,6 +63,28 @@
     }
 }
 
+static GtkWidget *
+_seahorse_pgp_generate_get_expiry_date (SeahorseWidget *swidget)
+{
+    GtkWidget *widget;
+    GList *children;
+
+    g_return_val_if_fail (swidget != NULL, NULL);
+
+    widget = seahorse_widget_get_widget (swidget, "expiry-date-container");
+    g_return_val_if_fail (widget != NULL, NULL);
+
+    children = gtk_container_get_children (GTK_CONTAINER (widget));
+    g_return_val_if_fail (children, NULL);
+
+    /* The first widget should be the expiry-date */
+    widget = g_list_nth_data (children, 0);
+
+    g_list_free (children);
+
+    return widget;
+}
+
 static void
 on_response (GtkDialog *dialog, guint response, SeahorseWidget *swidget)
 {
@@ -69,7 +98,7 @@
     gpgme_error_t gerr;
     gint sel;
     guint type;
-    glong expires;
+    time_t expires;
     guint bits;
     
     if (response == GTK_RESPONSE_HELP) {
@@ -123,11 +152,11 @@
     g_return_if_fail (widget != NULL);
     if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
         expires = 0;
-    else 
-    {
-        widget = seahorse_widget_get_widget (swidget, "expiry-date");
-        g_return_if_fail (widget != NULL);
-        expires = gnome_date_edit_get_time (GNOME_DATE_EDIT (widget));
+    else {
+        widget = _seahorse_pgp_generate_get_expiry_date (swidget);
+        g_return_if_fail (widget);
+
+        egg_datetime_get_as_time_t (EGG_DATETIME (widget), &expires);
     }
 
     sksrc = SEAHORSE_PGP_SOURCE (g_object_get_data (G_OBJECT (swidget), "key-source"));
@@ -182,8 +211,9 @@
 {
     GtkWidget *widget;
     
-    widget = seahorse_widget_get_widget (swidget, "expiry-date");
-    g_return_if_fail (widget != NULL);
+    widget = _seahorse_pgp_generate_get_expiry_date (swidget);
+    g_return_if_fail (widget);
+
     gtk_widget_set_sensitive (widget, !gtk_toggle_button_get_active (button));
 }
 
@@ -209,7 +239,7 @@
 {
     SeahorseWidget *swidget;
     GtkWidget *widget;
-    gulong expires;
+    time_t expires;
     guint i;
     
     swidget = seahorse_widget_new ("pgp-generate", parent);
@@ -232,12 +262,13 @@
     gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0);
     algorithm_changed (GTK_COMBO_BOX (widget), swidget);
     
+    expires = time (NULL);
+    expires += (60 * 60 * 24 * 365); /* Seconds in a year */
+
     /* Default expiry date */
-    widget = seahorse_widget_get_widget (swidget, "expiry-date");
+    widget = seahorse_widget_get_widget (swidget, "expiry-date-container");
     g_return_if_fail (widget != NULL);
-    expires = time(NULL);
-    expires += (60 * 60 * 24 * 365); /* Seconds in a year */
-    gnome_date_edit_set_time (GNOME_DATE_EDIT (widget), expires);
+    gtk_box_pack_start (GTK_BOX (widget), egg_datetime_new_from_time_t (expires), TRUE, TRUE, 0);
     
     g_object_ref (sksrc);
     g_object_set_data_full (G_OBJECT (swidget), "key-source", sksrc, g_object_unref);

Modified: trunk/src/seahorse-pgp-generate.glade
==============================================================================
--- trunk/src/seahorse-pgp-generate.glade	(original)
+++ trunk/src/seahorse-pgp-generate.glade	Sun May  4 20:22:27 2008
@@ -1,658 +1,410 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
 <glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="pgp-generate">
-  <property name="border_width">5</property>
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">New PGP Key</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-  <accessibility>
-    <atkproperty name="AtkObject::accessible_name" translatable="yes">Create a PGP Key</atkproperty>
-  </accessibility>
-  <signal name="delete_event" handler="delete_event" last_modification_time="Fri, 10 Jan 2003 08:53:02 GMT"/>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">2</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area1">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="helpbutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-help</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-11</property>
-	      <signal name="clicked" handler="help" last_modification_time="Sun, 10 Nov 2002 19:54:20 GMT"/>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="cancelbutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	      <signal name="clicked" handler="closed" last_modification_time="Sun, 10 Nov 2002 19:54:11 GMT"/>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="ok">
-	      <property name="visible">True</property>
-	      <property name="sensitive">False</property>
-	      <property name="tooltip" translatable="yes">Generate a new key</property>
-	      <property name="can_default">True</property>
-	      <property name="has_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	      <signal name="clicked" handler="ok_clicked" last_modification_time="Sun, 10 Nov 2002 19:54:32 GMT"/>
-
-	      <child>
-		<widget class="GtkAlignment" id="alignment1">
-		  <property name="visible">True</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xscale">0</property>
-		  <property name="yscale">0</property>
-		  <property name="top_padding">0</property>
-		  <property name="bottom_padding">0</property>
-		  <property name="left_padding">0</property>
-		  <property name="right_padding">0</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox1">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkImage" id="image1">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-ok</property>
-			  <property name="icon_size">4</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label44">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">C_reate</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHBox" id="hbox2">
-	  <property name="border_width">7</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">12</property>
-
-	  <child>
-	    <widget class="GtkImage" id="pgp-image">
-	      <property name="visible">True</property>
-	      <property name="icon_name"></property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox1">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label45">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">A PGP key allows you to encrypt email or files to other people.</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkTable" id="table12">
-		  <property name="visible">True</property>
-		  <property name="n_rows">3</property>
-		  <property name="n_columns">2</property>
-		  <property name="homogeneous">False</property>
-		  <property name="row_spacing">6</property>
-		  <property name="column_spacing">12</property>
-
-		  <child>
-		    <widget class="GtkEntry" id="email-entry">
-		      <property name="width_request">180</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text"></property>
-		      <property name="has_frame">True</property>
-		      <property name="activates_default">True</property>
-		      <signal name="changed" handler="on_entry_changed" last_modification_time="Fri, 18 Aug 2006 15:15:31 GMT"/>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label46">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Email Address:</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="mnemonic_widget">email-entry</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">1</property>
-		      <property name="bottom_attach">2</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label53">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Full _Name:</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="mnemonic_widget">name-entry</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkEntry" id="name-entry">
-		      <property name="width_request">180</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text"></property>
-		      <property name="has_frame">True</property>
-		      <property name="activates_default">True</property>
-		      <signal name="changed" handler="on_entry_changed" last_modification_time="Fri, 18 Aug 2006 15:15:39 GMT"/>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">0</property>
-		      <property name="bottom_attach">1</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkEntry" id="comment-entry">
-		      <property name="width_request">180</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text"></property>
-		      <property name="has_frame">True</property>
-		      <property name="activates_default">True</property>
-		      <signal name="changed" handler="on_entry_changed" last_modification_time="Fri, 18 Aug 2006 15:15:46 GMT"/>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">1</property>
-		      <property name="right_attach">2</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label54">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Comment:</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="mnemonic_widget">comment-entry</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="left_attach">0</property>
-		      <property name="right_attach">1</property>
-		      <property name="top_attach">2</property>
-		      <property name="bottom_attach">3</property>
-		      <property name="x_options">fill</property>
-		      <property name="y_options"></property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkExpander" id="expander1">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="expanded">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment2">
-		      <property name="visible">True</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0</property>
-		      <property name="xscale">0</property>
-		      <property name="yscale">0</property>
-		      <property name="top_padding">12</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkTable" id="table11">
-			  <property name="visible">True</property>
-			  <property name="n_rows">3</property>
-			  <property name="n_columns">2</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">6</property>
-			  <property name="column_spacing">12</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label49">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Encryption _Type:</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label50">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Key _Strength (bits):</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkAlignment" id="alignment4">
-			      <property name="visible">True</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0</property>
-			      <property name="xscale">0</property>
-			      <property name="yscale">1</property>
-			      <property name="top_padding">0</property>
-			      <property name="bottom_padding">0</property>
-			      <property name="left_padding">0</property>
-			      <property name="right_padding">0</property>
-
-			      <child>
-				<widget class="GtkComboBox" id="algorithm-choice">
-				  <property name="visible">True</property>
-				  <property name="items" translatable="yes">Algorithms here</property>
-				  <property name="add_tearoffs">False</property>
-				  <property name="focus_on_click">True</property>
-				  <signal name="changed" handler="on_algorithm_changed" last_modification_time="Fri, 18 Aug 2006 15:22:24 GMT"/>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkAlignment" id="alignment5">
-			      <property name="visible">True</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0</property>
-			      <property name="xscale">0</property>
-			      <property name="yscale">0</property>
-			      <property name="top_padding">0</property>
-			      <property name="bottom_padding">0</property>
-			      <property name="left_padding">0</property>
-			      <property name="right_padding">0</property>
-
-			      <child>
-				<widget class="GtkSpinButton" id="bits-entry">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="climb_rate">1</property>
-				  <property name="digits">0</property>
-				  <property name="numeric">True</property>
-				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				  <property name="snap_to_ticks">False</property>
-				  <property name="wrap">False</property>
-				  <property name="adjustment">2048 512 8192 512 1 1</property>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label55">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">E_xpiration Date:</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
-			      <property name="top_attach">2</property>
-			      <property name="bottom_attach">3</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox3">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GnomeDateEdit" id="expiry-date">
-				  <property name="visible">True</property>
-				  <property name="sensitive">False</property>
-				  <property name="dateedit_flags"></property>
-				  <property name="lower_hour">7</property>
-				  <property name="upper_hour">19</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkCheckButton" id="expires-check">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Ne_ver Expires</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">True</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="on_expires_toggled" last_modification_time="Fri, 18 Aug 2006 15:16:55 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
-			      <property name="top_attach">2</property>
-			      <property name="bottom_attach">3</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label48">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;_Advanced key options&lt;/b&gt;</property>
-		      <property name="use_underline">True</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="type">label_item</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
+  <widget class="GtkDialog" id="pgp-generate">
+    <property name="visible">True</property>
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">New PGP Key</property>
+    <property name="resizable">False</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <accessibility>
+      <atkproperty name="AtkObject::accessible_name" translatable="yes">Create a PGP Key</atkproperty>
+    </accessibility>
+    <signal name="delete_event" handler="delete_event"/>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox1">
+        <property name="visible">True</property>
+        <property name="spacing">2</property>
+        <child>
+          <widget class="GtkHBox" id="hbox2">
+            <property name="visible">True</property>
+            <property name="border_width">7</property>
+            <property name="spacing">12</property>
+            <child>
+              <widget class="GtkImage" id="pgp-image">
+                <property name="visible">True</property>
+                <property name="yalign">0</property>
+                <property name="stock">gtk-missing-image</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVBox" id="vbox1">
+                <property name="visible">True</property>
+                <property name="spacing">12</property>
+                <child>
+                  <widget class="GtkLabel" id="label45">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0</property>
+                    <property name="label" translatable="yes">A PGP key allows you to encrypt email or files to other people.</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkTable" id="table12">
+                    <property name="visible">True</property>
+                    <property name="n_rows">3</property>
+                    <property name="n_columns">2</property>
+                    <property name="column_spacing">12</property>
+                    <property name="row_spacing">6</property>
+                    <child>
+                      <widget class="GtkLabel" id="label54">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">_Comment:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">comment-entry</property>
+                      </widget>
+                      <packing>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkEntry" id="comment-entry">
+                        <property name="width_request">180</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="activates_default">True</property>
+                        <signal name="changed" handler="on_entry_changed"/>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">2</property>
+                        <property name="bottom_attach">3</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkEntry" id="name-entry">
+                        <property name="width_request">180</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="activates_default">True</property>
+                        <signal name="changed" handler="on_entry_changed"/>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label53">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">Full _Name:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">name-entry</property>
+                      </widget>
+                      <packing>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label46">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">_Email Address:</property>
+                        <property name="use_underline">True</property>
+                        <property name="mnemonic_widget">email-entry</property>
+                      </widget>
+                      <packing>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="x_options">GTK_FILL</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkEntry" id="email-entry">
+                        <property name="width_request">180</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="activates_default">True</property>
+                        <signal name="changed" handler="on_entry_changed"/>
+                      </widget>
+                      <packing>
+                        <property name="left_attach">1</property>
+                        <property name="right_attach">2</property>
+                        <property name="top_attach">1</property>
+                        <property name="bottom_attach">2</property>
+                        <property name="y_options"></property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkExpander" id="expander1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <widget class="GtkAlignment" id="alignment2">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="yalign">0</property>
+                        <property name="xscale">0</property>
+                        <property name="yscale">0</property>
+                        <property name="top_padding">12</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <widget class="GtkTable" id="table11">
+                            <property name="visible">True</property>
+                            <property name="n_rows">3</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">12</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <widget class="GtkHBox" id="expiry-date-container">
+                                <property name="visible">True</property>
+                                <property name="spacing">12</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                                <child>
+                                  <widget class="GtkCheckButton" id="expires-check">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="label" translatable="yes">Ne_ver Expires</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="response_id">0</property>
+                                    <property name="active">True</property>
+                                    <property name="draw_indicator">True</property>
+                                    <signal name="toggled" handler="on_expires_toggled"/>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label55">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">E_xpiration Date:</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkAlignment" id="alignment5">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0</property>
+                                <property name="xscale">0</property>
+                                <property name="yscale">0</property>
+                                <child>
+                                  <widget class="GtkSpinButton" id="bits-entry">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="adjustment">2048 512 8192 512 1 1</property>
+                                    <property name="climb_rate">1</property>
+                                    <property name="numeric">True</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkAlignment" id="alignment4">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="yalign">0</property>
+                                <property name="xscale">0</property>
+                                <child>
+                                  <widget class="GtkComboBox" id="algorithm-choice">
+                                    <property name="visible">True</property>
+                                    <property name="items" translatable="yes">Algorithms here</property>
+                                    <signal name="changed" handler="on_algorithm_changed"/>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label50">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Key _Strength (bits):</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                              <packing>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkLabel" id="label49">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">Encryption _Type:</property>
+                                <property name="use_underline">True</property>
+                              </widget>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                    <child>
+                      <widget class="GtkLabel" id="label48">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">&lt;b&gt;_Advanced key options&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                        <property name="use_underline">True</property>
+                      </widget>
+                      <packing>
+                        <property name="type">label_item</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="position">2</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="helpbutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-11</property>
+                <signal name="clicked" handler="help"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="cancelbutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-6</property>
+                <signal name="clicked" handler="closed"/>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="ok">
+                <property name="visible">True</property>
+                <property name="sensitive">False</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="tooltip" translatable="yes">Generate a new key</property>
+                <property name="response_id">-5</property>
+                <signal name="clicked" handler="ok_clicked"/>
+                <child>
+                  <widget class="GtkAlignment" id="alignment1">
+                    <property name="visible">True</property>
+                    <property name="xscale">0</property>
+                    <property name="yscale">0</property>
+                    <child>
+                      <widget class="GtkHBox" id="hbox1">
+                        <property name="visible">True</property>
+                        <property name="spacing">2</property>
+                        <child>
+                          <widget class="GtkImage" id="image1">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-ok</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label44">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">C_reate</property>
+                            <property name="use_underline">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>

Modified: trunk/src/seahorse-photos.c
==============================================================================
--- trunk/src/seahorse-photos.c	(original)
+++ trunk/src/seahorse-photos.c	Sun May  4 20:22:27 2008
@@ -23,8 +23,10 @@
 
 #include <sys/stat.h>
 #include <errno.h>
+#include <unistd.h>
+
+#include <glib/gi18n.h>
 
-#include <gnome.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
 #include "seahorse-widget.h"
@@ -93,7 +95,7 @@
     written = write (fd, buf, count);
     if (written != count) {
         g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno), 
-                     "%s", strerror (errno));
+                     "%s", g_strerror (errno));
         return FALSE;
     }
     
@@ -130,7 +132,7 @@
     
     /* Check if it's a JPEG */
     name = gdk_pixbuf_format_get_name (format);
-    r = strcmp (name, "jpeg") == 0;
+    r = g_strcmp0 (name, "jpeg") == 0;
     g_free (name);
     
     /* JPEGs we can use straight up */

Modified: trunk/src/seahorse-preferences.c
==============================================================================
--- trunk/src/seahorse-preferences.c	(original)
+++ trunk/src/seahorse-preferences.c	Sun May  4 20:22:27 2008
@@ -20,8 +20,6 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include <gnome.h>
-
 #include "seahorse-prefs.h"
 #include "seahorse-gconf.h"
 #include "seahorse-preferences.h"

Modified: trunk/src/seahorse-revoke.c
==============================================================================
--- trunk/src/seahorse-revoke.c	(original)
+++ trunk/src/seahorse-revoke.c	Sun May  4 20:22:27 2008
@@ -20,6 +20,10 @@
  */
 
 #include "config.h"
+
+#include <string.h>
+ 
+#include <glib/gi18n.h>
  
 #include "seahorse-key-dialogs.h"
 #include "seahorse-key-widget.h"

Modified: trunk/src/seahorse-sign.c
==============================================================================
--- trunk/src/seahorse-sign.c	(original)
+++ trunk/src/seahorse-sign.c	Sun May  4 20:22:27 2008
@@ -22,6 +22,8 @@
 
 #include "config.h"
 
+#include <glib/gi18n.h>
+
 #include "seahorse-windows.h"
 #include "seahorse-key-widget.h"
 #include "seahorse-util.h"
@@ -32,6 +34,7 @@
 
 #include "pgp/seahorse-pgp-dialogs.h"
 #include "pgp/seahorse-pgp-key-op.h"
+#include "pgp/seahorse-pgp-keysets.h"
 
 #ifdef WITH_KEYSERVER
 #include "seahorse-keyserver-sync.h"

Modified: trunk/src/seahorse-ssh-generate.c
==============================================================================
--- trunk/src/seahorse-ssh-generate.c	(original)
+++ trunk/src/seahorse-ssh-generate.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,10 @@
  */
 
 #include "config.h"
-#include <gnome.h>
+
+#include <string.h>
+ 
+#include <glib/gi18n.h>
 
 #include "seahorse-widget.h"
 #include "seahorse-util.h"

Modified: trunk/src/seahorse-ssh-key-properties.c
==============================================================================
--- trunk/src/seahorse-ssh-key-properties.c	(original)
+++ trunk/src/seahorse-ssh-key-properties.c	Sun May  4 20:22:27 2008
@@ -20,6 +20,8 @@
  */
 #include "config.h"
 
+#include <glib/gi18n.h>
+
 #include "seahorse-key-widget.h"
 
 #include "seahorse-gtkstock.h"

Modified: trunk/src/seahorse-ssh-upload.c
==============================================================================
--- trunk/src/seahorse-ssh-upload.c	(original)
+++ trunk/src/seahorse-ssh-upload.c	Sun May  4 20:22:27 2008
@@ -20,7 +20,10 @@
  */
 
 #include <config.h>
-#include <gnome.h>
+
+#include <string.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-widget.h"
 #include "seahorse-util.h"

Modified: trunk/ssh/seahorse-ssh-askpass.c
==============================================================================
--- trunk/ssh/seahorse-ssh-askpass.c	(original)
+++ trunk/ssh/seahorse-ssh-askpass.c	Sun May  4 20:22:27 2008
@@ -20,9 +20,16 @@
  */
  
 #include "config.h"
-#include <gnome.h>
+
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
 
 static FILE* seahorse_link = NULL;
  

Modified: trunk/ssh/seahorse-ssh-key.c
==============================================================================
--- trunk/ssh/seahorse-ssh-key.c	(original)
+++ trunk/ssh/seahorse-ssh-key.c	Sun May  4 20:22:27 2008
@@ -21,9 +21,11 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <string.h>
 
+#include <glib.h>
+#include <glib/gi18n.h>
+
 #include "seahorse-context.h"
 #include "seahorse-key-source.h"
 #include "seahorse-ssh-source.h"

Modified: trunk/ssh/seahorse-ssh-operation.c
==============================================================================
--- trunk/ssh/seahorse-ssh-operation.c	(original)
+++ trunk/ssh/seahorse-ssh-operation.c	Sun May  4 20:22:27 2008
@@ -20,10 +20,15 @@
  */
 
 #include "config.h"
+
 #include <sys/wait.h>
 #include <sys/socket.h>
-#include <gnome.h>
+#include <string.h>
+#include <errno.h>
 #include <fcntl.h>
+#include <unistd.h>
+
+#include <glib/gi18n.h>
 
 #include "seahorse-ssh-operation.h"
 #include "seahorse-util.h"
@@ -940,6 +945,7 @@
  * LOAD KEY INTO AGENT
  */ 
 
+#if 0
 #define KEYRING_ATTR_TYPE "seahorse-key-type"
 #define KEYRING_ATTR_KEYID "openssh-keyid"
 #define KEYRING_VAL_SSH "openssh"
@@ -1041,6 +1047,7 @@
         set_keyring_passphrase (pv->prompt_skey, pass);
     }
 }
+#endif
 
 /* -----------------------------------------------------------------------------
  * IMPORT A PUBLIC KEY 

Modified: trunk/ssh/seahorse-ssh-source.c
==============================================================================
--- trunk/ssh/seahorse-ssh-source.c	(original)
+++ trunk/ssh/seahorse-ssh-source.c	Sun May  4 20:22:27 2008
@@ -32,8 +32,12 @@
 
 #include <glib/gstdio.h>
 
+#include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <errno.h>
+
+#include <glib/gi18n.h>
 
 /* Override DEBUG switches here */
 #define DEBUG_REFRESH_ENABLE 0



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]