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
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits