seahorse r2203 - in trunk: . daemon gkr libegg libegg/.deps libegg/.libs libseahorse pgp src ssh
- From: sadam svn gnome org
- To: svn-commits-list gnome org
- Subject: seahorse r2203 - in trunk: . daemon gkr libegg libegg/.deps libegg/.libs libseahorse pgp src ssh
- Date: Sun, 4 May 2008 21:22:28 +0100 (BST)
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"><big><b>First time options:</b></big></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"><big><b>First time options:</b></big></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"><b>_Advanced key options</b></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"><b>_Advanced key options</b></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]