[Goodies-commits] r4044 - in xfce4-mailwatch-plugin/trunk: . panel-plugin

Brian Tarricone kelnos at xfce.org
Fri Mar 14 09:16:55 CET 2008


Author: kelnos
Date: 2008-03-14 08:16:55 +0000 (Fri, 14 Mar 2008)
New Revision: 4044

Modified:
   xfce4-mailwatch-plugin/trunk/configure.ac.in
   xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c
Log:
add about dialog


Modified: xfce4-mailwatch-plugin/trunk/configure.ac.in
===================================================================
--- xfce4-mailwatch-plugin/trunk/configure.ac.in	2008-03-14 07:31:10 UTC (rev 4043)
+++ xfce4-mailwatch-plugin/trunk/configure.ac.in	2008-03-14 08:16:55 UTC (rev 4044)
@@ -89,6 +89,10 @@
 dnl check for debugging support
 XDT_FEATURE_DEBUG
 
+AC_DEFINE_UNQUOTED([WEBSITE],
+                   ["http://spuriousinterrupt.org/projects/mailwatch"],
+                   [The Mailwatch website])
+
 AC_OUTPUT([
 Makefile
 doc/Makefile

Modified: xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c
===================================================================
--- xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c	2008-03-14 07:31:10 UTC (rev 4043)
+++ xfce4-mailwatch-plugin/trunk/panel-plugin/mailwatch-plugin.c	2008-03-14 08:16:55 UTC (rev 4044)
@@ -67,6 +67,8 @@
     GdkPixbuf               *pix_log[XFCE_MAILWATCH_N_LOG_LEVELS];
     XfceMailwatchLogLevel   log_status;
     GtkListStore            *loglist;
+
+    GtkWidget *about_dialog;
 } XfceMailwatchPlugin;
 
 enum {
@@ -900,6 +902,9 @@
 mailwatch_free(XfcePanelPlugin *plugin, XfceMailwatchPlugin *mwp)
 {
     gint i;
+
+    if(mwp->about_dialog)
+        gtk_widget_destroy(mwp->about_dialog);
     
     xfce_mailwatch_destroy(mwp->mailwatch);
     
@@ -932,6 +937,45 @@
 }
 
 static void
+mailwatch_about_clicked_cb(GtkMenuItem *mi,
+                           gpointer user_data)
+{
+    XfceMailwatchPlugin *mwp = user_data;
+    XfceAboutInfo *ainfo;
+    GdkPixbuf *icon;
+
+    if(G_UNLIKELY(mwp->about_dialog)) {
+        gtk_window_present(GTK_WINDOW(mwp->about_dialog));
+        return;
+    }
+
+    ainfo = xfce_about_info_new(_("Xfce4 Mailwatch Plugin"),
+                                VERSION,
+                                _("A featureful mail-checker applet for the Xfce Panel"),
+                                _("Copyright (c) 2005-2008 Brian Tarricone\n"
+                                  "Copyright (c) 2005 Pasi Orovuo"),
+                                  XFCE_LICENSE_GPL);
+    xfce_about_info_set_homepage(ainfo, WEBSITE);
+    xfce_about_info_add_credit(ainfo, "Brian J. Tarricone",
+                               "bjt23 at cornell.edu",
+                               _("Maintainer, Original Author"));
+    xfce_about_info_add_credit(ainfo, "Pasi Orovuo", "pasi.ov at gmail.com",
+                               _("Developer"));
+    
+    icon = xfce_themed_icon_load("xfce-mail", 32);
+    
+    mwp->about_dialog = xfce_about_dialog_new_with_values(NULL, ainfo, icon);
+    g_object_add_weak_pointer(G_OBJECT(mwp->about_dialog),
+                              (gpointer)&mwp->about_dialog);
+    gtk_widget_show_all(mwp->about_dialog);
+    g_signal_connect(G_OBJECT(mwp->about_dialog), "response",
+                     G_CALLBACK(gtk_widget_destroy), NULL);
+
+    if(icon)
+        g_object_unref(G_OBJECT(icon));
+}
+
+static void
 mailwatch_construct(XfcePanelPlugin *plugin)
 {
     XfceMailwatchPlugin *mwp;
@@ -945,17 +989,17 @@
     mailwatch_read_config(plugin, mwp);
 
     g_signal_connect(plugin, "free-data", 
-                      G_CALLBACK(mailwatch_free), mwp);
+                     G_CALLBACK(mailwatch_free), mwp);
     
     g_signal_connect(plugin, "save", 
-                      G_CALLBACK(mailwatch_write_config), mwp);
+                     G_CALLBACK(mailwatch_write_config), mwp);
     
     xfce_panel_plugin_menu_show_configure(plugin);
     g_signal_connect(plugin, "configure-plugin", 
-                      G_CALLBACK(mailwatch_create_options), mwp);
+                     G_CALLBACK(mailwatch_create_options), mwp);
 
-    g_signal_connect(plugin, "size-changed", G_CALLBACK(mailwatch_set_size),
-                      mwp);
+    g_signal_connect(plugin, "size-changed",
+                     G_CALLBACK(mailwatch_set_size), mwp);
     
     mi = gtk_image_menu_item_new_with_label(_("Update Now"));
     img = gtk_image_new_from_stock(GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU);
@@ -966,9 +1010,17 @@
                      G_CALLBACK(mailwatch_update_now_clicked_cb), mwp);
     xfce_panel_plugin_menu_insert_item(plugin, GTK_MENU_ITEM(mi));
 
+    mi = gtk_image_menu_item_new_with_label(_("About Mailwatch"));
+    img = gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU);
+    gtk_widget_show(img);
+    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mi), img);
+    gtk_widget_show(mi);
+    g_signal_connect(G_OBJECT(mi), "activate",
+                     G_CALLBACK(mailwatch_about_clicked_cb), mwp);
+    xfce_panel_plugin_menu_insert_item(plugin, GTK_MENU_ITEM(mi));
+
     xfce_mailwatch_force_update(mwp->mailwatch);
 }
 
-
 XFCE_PANEL_PLUGIN_REGISTER_EXTERNAL(mailwatch_construct);
 




More information about the Goodies-commits mailing list