Git-Url:
http://git.frugalware.org/gitweb/gitweb.cgi?p=fun.git;a=commitdiff;h=c22c58a99556ece0445283d6722e870d783ceed0
commit c22c58a99556ece0445283d6722e870d783ceed0
Author: Priyank <[EMAIL PROTECTED]>
Date: Fri Dec 21 01:45:05 2007 +0530
fun-ui/tooltip: Added a "View Updates" button to the tooltip which shows the
updates window when clicked.
diff --git a/src/fun-tooltip.c b/src/fun-tooltip.c
index e6119ce..638b6d0 100644
--- a/src/fun-tooltip.c
+++ b/src/fun-tooltip.c
@@ -21,23 +21,28 @@
#include <gtk/gtk.h>
#include <libnotify/notification.h>
#include <libnotify/notify.h>
+#include "fun.h"
+#include "fun-ui.h"
#include "fun-config.h"
#include "fun-tooltip.h"
static NotifyNotification *tooltip = NULL;
+static void fun_tooltip_callback (NotifyNotification *ttip, gchar *id,
gpointer data);
+
void fun_tooltip_new (GtkStatusIcon *icon)
{
notify_init ("fun");
tooltip = notify_notification_new ("Frugalware Update Notifier",
-
NULL,
-
"fun",
-
NULL);
+ NULL,
+ "fun",
+ NULL);
notify_notification_set_category (tooltip, "information");
notify_notification_set_timeout (tooltip,
(fun_config_get_value_int("notification_timeout")*1000));
notify_notification_set_urgency (tooltip, NOTIFY_URGENCY_NORMAL);
notify_notification_attach_to_status_icon (tooltip, icon);
-
+ notify_notification_add_action (tooltip, "view_updates", _("View
Updates"), (NotifyActionCallback)fun_tooltip_callback, NULL, NULL);
+
return;
}
@@ -52,7 +57,7 @@ void fun_tooltip_set_text (const gchar *summary, const gchar
*body)
void fun_tooltip_set_notification_timeout (guint timeout)
{
notify_notification_set_timeout (tooltip, timeout*1000);
-
+
return;
}
@@ -79,3 +84,14 @@ void fun_tooltip_destroy (void)
return;
}
+
+static void
+fun_tooltip_callback (NotifyNotification *ttip, gchar *id, gpointer data)
+{
+ if (!strcmp(id,"view_updates"))
+ {
+ fun_main_window_show ();
+ }
+
+ return;
+}
diff --git a/src/fun-ui.c b/src/fun-ui.c
index 4c975d7..bc03526 100644
--- a/src/fun-ui.c
+++ b/src/fun-ui.c
@@ -19,6 +19,7 @@
*/
#include "fun.h"
+#include "fun-ui.h"
#include "fun-config.h"
#include "fun-messages.h"
#include "fun-tooltip.h"
@@ -31,15 +32,13 @@
static void fun_about_show (void);
static void fun_about_hide (void);
static void fun_main_window_init (void);
-static void fun_main_window_show (void);
static void fun_main_window_hide (void);
static void fun_launch_gfpm (void);
static void fun_populate_updates_tvw (gchar *plist);
-extern GladeXML *xml;
-
-static GtkStatusIcon *icon = NULL;
+extern GladeXML *xml;
+static GtkStatusIcon *icon = NULL;
static GtkWidget *fun_about_dlg = NULL;
static GtkWidget *fun_main_window = NULL;
static GtkWidget *fun_statusbar = NULL;
@@ -48,8 +47,8 @@ static GtkWidget *fun_check_btn = NULL;
static GdkPixbuf *fun_about_pixbuf = NULL;
static GtkWidget *fun_config_dlg = NULL;
static GtkWidget *fun_config_gfpm_launcher_combo = NULL;
-static GtkAdjustment *fun_config_upd_int_adj = NULL;
-static GtkAdjustment *fun_config_not_tim_adj = NULL;
+static GtkAdjustment *fun_config_upd_int_adj = NULL;
+static GtkAdjustment *fun_config_not_tim_adj = NULL;
static gboolean connected = FALSE;
/* credits */
@@ -96,6 +95,7 @@ static GdkPixbuf * fun_get_icon (const char *icon, int size);
static void fun_update_status (const char *message);
static gboolean cb_fun_systray_icon_clicked (GtkStatusIcon *widget, guint
button, guint activate_time, gpointer data);
+static void cb_fun_systray_icon_activated (GtkStatusIcon *widget, gpointer
data);
static void cb_fun_config_dlg_close_clicked (GtkWidget *button, gpointer data);
void
@@ -108,12 +108,20 @@ fun_systray_create (void)
fun_tooltip_new (icon);
fun_tooltip_set_text ("Frugalware Update Notifier", NULL);
- g_signal_connect (icon, "activate", G_CALLBACK (fun_main_window_show),
NULL);
+ g_signal_connect (icon, "activate", G_CALLBACK
(cb_fun_systray_icon_activated), NULL);
g_signal_connect (icon, "popup-menu", G_CALLBACK (cb_fun_systray_icon_clicked),
NULL);
return;
}
+static void
+cb_fun_systray_icon_activated (GtkStatusIcon *widget, gpointer data)
+{
+ fun_main_window_show ();
+
+ return;
+}
+
static gboolean
cb_fun_systray_icon_clicked (GtkStatusIcon *widget, guint button, guint
activate_time, gpointer data)
{
@@ -567,7 +575,7 @@ fun_main_window_hide (void)
return;
}
-static void
+void
fun_main_window_show (void)
{
/* Toggle window visibility */
diff --git a/src/fun-ui.h b/src/fun-ui.h
index a657165..0f4ce62 100644
--- a/src/fun-ui.h
+++ b/src/fun-ui.h
@@ -5,4 +5,6 @@ void fun_ui_init (void);
void fun_ui_cleanup (void);
+void fun_main_window_show (void);
+
#endif
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git