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