Author: juha
Date: 2008-08-28 22:06:46 +0000 (Thu, 28 Aug 2008)
New Revision: 27607

Modified:
   xfcalendar/trunk/configure.in.in
   xfcalendar/trunk/src/parameters.c
   xfcalendar/trunk/src/reminder.c
   xfcalendar/trunk/src/tray_icon.c
   xfcalendar/trunk/src/xfce_trayicon.c
   xfcalendar/trunk/src/xfce_trayicon.h
Log:
Version 4.5.14.5
Added support for GtkStatusIcon and removed dependency from NETK stuff


Modified: xfcalendar/trunk/configure.in.in
===================================================================
--- xfcalendar/trunk/configure.in.in    2008-08-28 16:33:27 UTC (rev 27606)
+++ xfcalendar/trunk/configure.in.in    2008-08-28 22:06:46 UTC (rev 27607)
@@ -9,7 +9,7 @@
 dnl
 
 dnl Version information
-m4_define([orage_version], [4.5.14.4-svn])
+m4_define([orage_version], [4.5.14.5-svn])
 
 m4_define([gtk_minimum_version], [2.6.0])
 m4_define([xfce_minimum_version], [4.4.0])

Modified: xfcalendar/trunk/src/parameters.c
===================================================================
--- xfcalendar/trunk/src/parameters.c   2008-08-28 16:33:27 UTC (rev 27606)
+++ xfcalendar/trunk/src/parameters.c   2008-08-28 22:06:46 UTC (rev 27607)
@@ -322,7 +322,18 @@
 
 static void set_systray()
 {
+#if GTK_CHECK_VERSION(2,10,0)
     if (!(g_par.trayIcon 
+    && gtk_status_icon_is_embedded((GtkStatusIcon *)g_par.trayIcon))) {
+        g_par.trayIcon = create_TrayIcon();
+    }
+
+    if (g_par.show_systray)
+        gtk_status_icon_set_visible((GtkStatusIcon *)g_par.trayIcon, TRUE);
+    else
+        gtk_status_icon_set_visible((GtkStatusIcon *)g_par.trayIcon, FALSE);
+#else
+    if (!(g_par.trayIcon 
     && NETK_IS_TRAY_ICON(((XfceTrayIcon *)g_par.trayIcon)->tray))) {
         g_par.trayIcon = create_TrayIcon();
     }
@@ -331,6 +342,7 @@
         xfce_tray_icon_connect((XfceTrayIcon *)g_par.trayIcon);
     else
         xfce_tray_icon_disconnect((XfceTrayIcon *)g_par.trayIcon);
+#endif
 }
 
 static void systray_changed(GtkWidget *dialog, gpointer user_data)

Modified: xfcalendar/trunk/src/reminder.c
===================================================================
--- xfcalendar/trunk/src/reminder.c     2008-08-28 16:33:27 UTC (rev 27606)
+++ xfcalendar/trunk/src/reminder.c     2008-08-28 22:06:46 UTC (rev 27607)
@@ -427,10 +427,17 @@
         g_strlcat(heading, alarm->title, 50);
     n = notify_notification_new(heading, alarm->description, NULL, NULL);
     alarm->active_alarm->active_notify = n;
+#if GTK_CHECK_VERSION(2,10,0)
     if (g_par.trayIcon 
+    && gtk_status_icon_is_embedded((GtkStatusIcon *)g_par.trayIcon))
+        notify_notification_attach_to_status_icon(n
+                , (GtkStatusIcon *)g_par.trayIcon);
+#else
+    if (g_par.trayIcon 
     && NETK_IS_TRAY_ICON(((XfceTrayIcon *)g_par.trayIcon)->tray)) 
         notify_notification_attach_to_widget(n
                 , ((XfceTrayIcon *)g_par.trayIcon)->image);
+#endif
 
     if (alarm->notify_timeout == -1)
         notify_notification_set_timeout(n, NOTIFY_EXPIRES_NEVER);
@@ -823,8 +830,13 @@
 #ifdef ORAGE_DEBUG
     orage_message(-100, P_N);
 #endif
+#if GTK_CHECK_VERSION(2,10,0)
     if (!(g_par.trayIcon 
+    && gtk_status_icon_is_embedded((GtkStatusIcon *)g_par.trayIcon))) {
+#else
+    if (!(g_par.trayIcon 
     && NETK_IS_TRAY_ICON(((XfceTrayIcon *)g_par.trayIcon)->tray))) { 
+#endif
            /* no trayicon => no need to update the tooltip */
         return(FALSE);
     }
@@ -866,8 +878,12 @@
     }
     if (alarm_cnt == 0)
         g_string_append_printf(tooltip, _("\nNo active alarms found"));
+#if GTK_CHECK_VERSION(2,10,0)
+    gtk_status_icon_set_tooltip((GtkStatusIcon *)g_par.trayIcon, tooltip->str);
+#else
     xfce_tray_icon_set_tooltip((XfceTrayIcon *)g_par.trayIcon, tooltip->str
             , NULL);
+#endif
     g_string_free(tooltip, TRUE);
     return(TRUE);
 }

Modified: xfcalendar/trunk/src/tray_icon.c
===================================================================
--- xfcalendar/trunk/src/tray_icon.c    2008-08-28 16:33:27 UTC (rev 27606)
+++ xfcalendar/trunk/src/tray_icon.c    2008-08-28 22:06:46 UTC (rev 27607)
@@ -83,11 +83,23 @@
     create_wAbout((GtkWidget *)menuitem, user_data);
 }
 
+#if GTK_CHECK_VERSION(2,10,0)
+void toggle_visible_cb(GtkStatusIcon *status_icon, gpointer user_data)
+#else
 void toggle_visible_cb ()
+#endif
 {
     orage_toggle_visible ();
 }
 
+#if GTK_CHECK_VERSION(2,10,0)
+void show_menu(GtkStatusIcon *status_icon, guint button, guint activate_time
+        , gpointer user_data)
+{
+    gtk_menu_popup((GtkMenu *)user_data, NULL, NULL, NULL, NULL, button, 
activate_time);
+}
+#endif
+
 GdkPixbuf *orage_create_icon(gboolean static_icon, gint x, gint y)
 {
     CalWin *xfcal = (CalWin *)g_par.xfcal;
@@ -286,6 +298,9 @@
 
 void destroy_TrayIcon(XfceTrayIcon *trayIcon)
 {
+#if GTK_CHECK_VERSION(2,10,0)
+    g_object_unref(trayIcon);
+#else
     if (trayIcon == NULL) 
         return;
     if (trayIcon->tip_text != NULL)
@@ -297,6 +312,7 @@
     /*
     g_object_unref(GTK_OBJECT(trayIcon));
     */
+#endif
 }
 
 XfceTrayIcon* create_TrayIcon()
@@ -363,24 +379,49 @@
      */
 
     pixbuf = orage_create_icon(FALSE, g_par.icon_size_x, g_par.icon_size_y);
+#if GTK_CHECK_VERSION(2,10,0)
+    trayIcon = gtk_status_icon_new_from_pixbuf(pixbuf);
+#else
     trayIcon = xfce_tray_icon_new_with_menu_from_pixbuf(trayMenu, pixbuf);
+#endif
+
     g_object_ref(trayIcon);
+#if GTK_CHECK_VERSION(2,10,0)
+    g_object_ref_sink(trayIcon);
+#else
     gtk_object_sink(GTK_OBJECT(trayIcon));
+#endif
     g_object_unref(pixbuf);
 
+#if GTK_CHECK_VERSION(2,10,0)
+    g_signal_connect(G_OBJECT(trayIcon), "activate",
+                          G_CALLBACK(toggle_visible_cb), xfcal);
+    g_signal_connect(G_OBJECT(trayIcon), "popup_menu",
+                          G_CALLBACK(show_menu), trayMenu);
+#else
     g_signal_connect_swapped(G_OBJECT(trayIcon), "clicked",
                           G_CALLBACK(toggle_visible_cb), xfcal);
+#endif
     return(trayIcon);
 }
 
 void refresh_TrayIcon()
 {
     if (g_par.show_systray) { /* refresh tray icon */
+#if GTK_CHECK_VERSION(2,10,0)
+        if (ORAGE_TRAYICON && gtk_status_icon_is_embedded(ORAGE_TRAYICON)) {
+            gtk_status_icon_set_visible(ORAGE_TRAYICON, FALSE);
+            destroy_TrayIcon(ORAGE_TRAYICON);
+        }
+        g_par.trayIcon = create_TrayIcon();
+        gtk_status_icon_set_visible(ORAGE_TRAYICON, TRUE);
+#else
         if (ORAGE_TRAYICON && NETK_IS_TRAY_ICON(ORAGE_TRAYICON->tray)) {
             xfce_tray_icon_disconnect(ORAGE_TRAYICON);
             destroy_TrayIcon(ORAGE_TRAYICON);
         }
         g_par.trayIcon = create_TrayIcon();
         xfce_tray_icon_connect(ORAGE_TRAYICON);
+#endif
     }
 }

Modified: xfcalendar/trunk/src/xfce_trayicon.c
===================================================================
--- xfcalendar/trunk/src/xfce_trayicon.c        2008-08-28 16:33:27 UTC (rev 
27606)
+++ xfcalendar/trunk/src/xfce_trayicon.c        2008-08-28 22:06:46 UTC (rev 
27607)
@@ -24,6 +24,11 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <gtk/gtk.h>
+
+#if !GTK_CHECK_VERSION(2,10,0)
+/* Gtk 2.10 has status icons (=tray icons) so we only need these for older 
versions */
+
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif /* !HAVE_CONFIG_H */
@@ -401,3 +406,4 @@
         */
 }
 
+#endif  /* !GTK_CHECK_VERSION(2,10,0) */

Modified: xfcalendar/trunk/src/xfce_trayicon.h
===================================================================
--- xfcalendar/trunk/src/xfce_trayicon.h        2008-08-28 16:33:27 UTC (rev 
27606)
+++ xfcalendar/trunk/src/xfce_trayicon.h        2008-08-28 22:06:46 UTC (rev 
27607)
@@ -24,6 +24,9 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#if GTK_CHECK_VERSION(2,10,0)
+#define XfceTrayIcon GtkStatusIcon
+#else
 /*
  * This is a wrapper class to NetkTrayIcon.
  */
@@ -95,3 +98,4 @@
 G_END_DECLS
 
 #endif /* !__XFCE_TRAY_ICON_H__ */
+#endif /* !GTK_CHECK_VERSION(2,10,0) */

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to