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

Reply via email to