From b34cfa0d399f1478ffa11f27e99d796bb78bd699 Mon Sep 17 00:00:00 2001 From: guidog Date: Sat, 10 Jan 2009 13:25:40 +0000 Subject: add "expiring" tray icon shown when credentials are about to expire git-svn-id: http://svn.gnome.org/svn/krb5-auth-dialog/trunk@109 517b70f8-ed25-0410-8bf6-f5db08f7b76e --- ChangeLog | 11 +++++++++++ icons/Makefile.am | 1 + icons/krb-expiring-ticket.png | Bin 0 -> 1341 bytes src/krb5-auth-applet.c | 19 ++++++++++++++----- src/krb5-auth-applet.h | 2 +- src/krb5-auth-dialog.c | 1 - 6 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 icons/krb-expiring-ticket.png diff --git a/ChangeLog b/ChangeLog index cab56f2..74a7f19 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Sun Jan 4 16:43:32 CET 2009 Guido Günther + + add "expiring" tray icon + * icons/krb5-expiring-ticket.png: new icon + * icons/Makefile.am (smallicon_DATA): add new icon + * src/krb5-auth-applet.[ch] (ka_icons): new enum, new icon + (ka_update_status): use ka_icons + (ka_create_applet): call gtk_window_set_default_icon_name + * src/krb5-auth-dialog.c (main): don't call + gtk_window_set_default_icon_name + Sun Jan 4 16:37:35 CET 2009 Guido Günther * src/krb5-auth-applet.c (ka_update_status): don't show a tooltip diff --git a/icons/Makefile.am b/icons/Makefile.am index b771676..d13dbbf 100644 --- a/icons/Makefile.am +++ b/icons/Makefile.am @@ -4,6 +4,7 @@ smallicondir=${datadir}/icons/hicolor/22x22/apps smallicon_DATA= \ krb-valid-ticket.png \ krb-no-valid-ticket.png \ + krb-expiring-ticket.png \ $(NULL) EXTRA_DIST=\ diff --git a/icons/krb-expiring-ticket.png b/icons/krb-expiring-ticket.png new file mode 100644 index 0000000..cd03697 Binary files /dev/null and b/icons/krb-expiring-ticket.png differ diff --git a/src/krb5-auth-applet.c b/src/krb5-auth-applet.c index cffa81c..4f2215d 100644 --- a/src/krb5-auth-applet.c +++ b/src/krb5-auth-applet.c @@ -30,6 +30,12 @@ #define NOTIFY_SECONDS 300 +enum ka_icons { + inv_icon = 0, + exp_icon, + val_icon, +}; + /* update the tray icon's tooltip and icon */ int ka_update_status(Krb5AuthApplet* applet, krb5_timestamp expiry) @@ -46,14 +52,15 @@ ka_update_status(Krb5AuthApplet* applet, krb5_timestamp expiry) hours = remaining / 3600; minutes = (remaining % 3600) / 60; expiry_text = g_strdup_printf (_("Your credentials expire in %.2d:%.2dh"), hours, minutes); + gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[val_icon]); } else { minutes = remaining / 60; expiry_text = g_strdup_printf (ngettext( "Your credentials expire in %d minute", "Your credentials expire in %d minutes", minutes), minutes); + gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[exp_icon]); } - gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[1]); #ifdef HAVE_LIBNOTIFY if (expiry_notified) { ka_send_event_notification (applet, NOTIFY_URGENCY_NORMAL, @@ -70,7 +77,7 @@ ka_update_status(Krb5AuthApplet* applet, krb5_timestamp expiry) #endif } else { expiry_text = g_strdup (_("Your credentials have expired")); - gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[0]); + gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[inv_icon]); #ifdef HAVE_LIBNOTIFY if (!expiry_notified) { ka_send_event_notification (applet, NOTIFY_URGENCY_NORMAL, @@ -214,7 +221,7 @@ ka_create_tray_icon (Krb5AuthApplet* applet) g_signal_connect (G_OBJECT(tray_icon), "popup-menu", G_CALLBACK(ka_tray_icon_on_menu), applet); - gtk_status_icon_set_from_icon_name (tray_icon, applet->icons[0]); + gtk_status_icon_set_from_icon_name (tray_icon, applet->icons[exp_icon]); gtk_status_icon_set_tooltip (tray_icon, PACKAGE); return tray_icon; } @@ -223,8 +230,9 @@ ka_create_tray_icon (Krb5AuthApplet* applet) int ka_setup_icons (Krb5AuthApplet* applet) { - applet->icons[0] = "krb-no-valid-ticket"; - applet->icons[1] = "krb-valid-ticket"; + applet->icons[val_icon] = "krb-valid-ticket"; + applet->icons[exp_icon] = "krb-expiring-ticket"; + applet->icons[inv_icon] = "krb-no-valid-ticket"; return TRUE; } @@ -241,6 +249,7 @@ ka_create_applet() g_error ("Failure to create tray icon"); if (!(applet->context_menu = ka_create_context_menu (applet))) g_error ("Failure to create context menu"); + gtk_window_set_default_icon_name (applet->icons[val_icon]); ka_show_tray_icon (applet); return applet; diff --git a/src/krb5-auth-applet.h b/src/krb5-auth-applet.h index 18937b7..e137794 100644 --- a/src/krb5-auth-applet.h +++ b/src/krb5-auth-applet.h @@ -35,7 +35,7 @@ typedef struct { GtkStatusIcon* tray_icon; /* the tray icon */ GtkWidget* context_menu; /* the tray icon's context menu */ - const char* icons[2]; /* for expired and valid tickts */ + const char* icons[3]; /* for invalid, expiring and valid tickts */ gboolean show_trayicon; /* show the trayicon */ /* The password dialog */ diff --git a/src/krb5-auth-dialog.c b/src/krb5-auth-dialog.c index 62cbef4..3beaa8b 100644 --- a/src/krb5-auth-dialog.c +++ b/src/krb5-auth-dialog.c @@ -891,7 +891,6 @@ main (int argc, char *argv[]) applet->pw_dialog = glade_xml_get_widget (applet->pw_xml, "krb5_dialog"); g_set_application_name (_("Network Authentication")); - gtk_window_set_default_icon_name (applet->icons[1]); #ifdef ENABLE_NETWORK_MANAGER nm_context = libnm_glib_init (); -- cgit v1.2.3